char函数

intel core 2 duo温度读取

≡放荡痞女 提交于 2020-02-01 19:37:44
1 目的:实现intel core 2 duo cpu的温度检测 2 分析: 对于intel处理器,每个处理器核心有Digital Thermal Sensors(DTS 数字敏感传感器),该数字传感器的检测值不依赖于外围电路,仅仅取决于 cpu核心的热度,其取值存储于cpu上的一个特殊寄存器中,该寄存器称为Model Specific Register 0x19c(MSR),可以通过rdmsr指令读取,内核代码coretemp.c文件实现了该文件的读取,插入coretemp.ko模块后,可以通过/sys/devices/platform/coretemp.0/目录下的temp1_input、temp2_input等文件读取,温度值基本与lm-sensors读取值一致(lm-sensors基于该内核驱动模块实现的)。 3 hwmon/coretemp.c文件导读, 注:该检测文件的对应文档信息在/documation/hdware/coretemp文件下 3.1 前期工作 对于intel core 2 duo cpu而言,coretemp.c中包含特定架构的头文件为x86/include/asm/process.h 在process.h中定义了cpu_data数据结构: 1 DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); 2

pat甲级1069

蹲街弑〆低调 提交于 2020-02-01 19:23:28
思路:核心是找到数值与字符串互相转化的方法,还要考虑高位补0。cstdio中天然有一个利器,那就是sprintf()和sscanf()两个函数。数值有4位,转换时,字符数组大小要定为5,因为要接收最后的 ‘\0’,否则提交后会出现运行时错误。 # include <cstdio> # include <algorithm> int num_to_dec ( int a ) ; int num_to_inc ( int a ) ; bool cmp_dec ( char a , char b ) ; bool cmp_inc ( char a , char b ) ; int main ( ) { int num ; scanf ( "%d" , & num ) ; while ( true ) { int num_dec = num_to_dec ( num ) ; int num_inc = num_to_inc ( num ) ; num = num_dec - num_inc ; printf ( "%04d - %04d = %04d\n" , num_dec , num_inc , num ) ; if ( num == 0 || num == 6174 ) break ; } return 0 ; } int num_to_dec ( int a ) { char n

libnids使用举例

点点圈 提交于 2020-02-01 11:33:54
---[[ libnids应用实例 ]]---------------------------------- 1、nids_next()函数的应用 ============================ cut here ============================ /* This is an example how one can use nids_getfd() and nids_next() functions. You can replace printall.c's function main with this file. */ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> int main () { // here we can alter libnids params, for instance: // nids_params.n_hosts=256; int fd; int time = 0; fd_set rset; struct timeval tv; if (!nids_init ()) { fprintf(stderr,"%s\n",nids_errbuf); exit(1); } nids_register_tcp (tcp_callback); fd =

C语言之结构体

喜你入骨 提交于 2020-02-01 03:56:21
概念 结构体是一种构造类型,由若干个成员组成,成员可以是基本数据类型,或是另一个结构体 声明结构体 struct 结构体名 { 成员列表 }; 结构体名表示结构的类型名。 声明一个结构体表示创建一种新的类型名(自定义数据类型),然后用类型名定义变量。 struct Product { char name[10]; char shape[10]; char color[10]; float price; } 使用结构体定义变量有三种方式 第一种:声明结构体类型,再定义变量 struct Product p1; struct Product p2; p1和p2是结构体变量名,这两个变量具有相同的结构 类比: 类型名 变量名 int a; | | struct Product p; struct Product整体表示一种数据类型 定义结构体变量后,系统会为其分配内存单元 第二种:声明结构体类型时,同时定义变量(可以定义多个变量) struct 结构体名 { 成员列表 } 变量名列表; example: struct Product { char name[10]; char shape[10]; char color[10]; float price; } p1, p2; 第三种:直接定义结构体类型变量(匿名结构体,没有结构体名称) struct { 成员列表 } 成员变量;

string 与char* char[]之间的转换 .

十年热恋 提交于 2020-02-01 01:56:58
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*。 2、string 转换成 char * 如果要将string直接转换成const char *类型。string有2个函数可以运用。 一个是.c_str(),一个是data成员函数。 例子如下: string s1 = "abcdeg"; const char *k = s1.c_str(); const char *t = s1.data(); printf("%s%s",k,t); cout<<k<<t<<endl; 如上,都可以输出。内容是一样的。但是只能转换成const char*,如果去掉const编译不能通过。 那么,如果要转换成char*,可以用string的一个成员函数copy实现。 string s1 = "abcdefg"; char *data; int len = s1.length(); data = (char *

string 与char* char[]之间的转换

旧巷老猫 提交于 2020-02-01 01:56:25
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*。 2、string 转换成 char * 如果要将string直接转换成const char *类型。string有2个函数可以运用。 一个是.c_str(),一个是data成员函数。 例子如下: string s1 = "abcdeg"; const char *k = s1.c_str(); const char *t = s1.data(); printf("%s%s",k,t); cout<<k<<t<<endl; 如上,都可以输出。内容是一样的。但是只能转换成const char*,如果去掉const编译不能通过。 那么,如果要转换成char*,可以用string的一个成员函数copy实现。 string s1 = "abcdefg"; char *data; int len = s1.length(); data = (char *

string 与char* char[]之间的转换

家住魔仙堡 提交于 2020-02-01 01:55:59
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*。 2、string 转换成 char * 如果要将string直接转换成const char *类型。string有2个函数可以运用。 一个是.c_str(),一个是data成员函数。 例子如下: string s1 = "abcdeg"; const char *k = s1.c_str(); const char *t = s1.data(); printf("%s%s",k,t); cout<<k<<t<<endl; 如上,都可以输出。内容是一样的。但是只能转换成const char*,如果去掉const编译不能通过。 那么,如果要转换成char*,可以用string的一个成员函数copy实现。 string s1 = "abcdefg"; char *data; int len = s1.length(); data = (char *

string 与char* char[]之间的转换

泄露秘密 提交于 2020-02-01 01:55:02
string 与char* char[]之间的转换,有需要的朋友可以参考下。 1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*。 2、string 转换成 char * 如果要将string直接转换成const char *类型。string有2个函数可以运用。 一个是.c_str(),一个是data成员函数。 例子如下: string s1 = "abcdeg"; const char *k = s1.c_str(); const char *t = s1.data(); printf("%s%s",k,t); cout<<k<<t<<endl; 如上,都可以输出。内容是一样的。但是只能转换成const char*,如果去掉const编译不能通过。 那么,如果要转换成char*,可以用string的一个成员函数copy实现。 string s1 = "abcdefg"; char *data; int

string 与char* char[]之间的转换

…衆ロ難τιáo~ 提交于 2020-02-01 01:53:40
1、首先必须了解,string可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的string类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与char*不同的是,string不一定以NULL('\0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*。 2、string 转换成 char * 如果要将string直接转换成const char *类型。string有2个函数可以运用。 一个是.c_str(),一个是data成员函数。 例子如下: string s1 = "abcdeg"; const char *k = s1.c_str(); const char *t = s1.data(); printf("%s%s",k,t); cout<<k<<t<<endl; 如上,都可以输出。内容是一样的。但是只能转换成const char*,如果去掉const编译不能通过。 那么,如果要转换成char*,可以用string的一个成员函数copy实现。 string s1 = "abcdefg"; char *data; int len = s1.length(); data = (char *

Sizeof与Strlen的区别与联系

两盒软妹~` 提交于 2020-02-01 01:52:18
1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。 sizeof还可以用函数做参数,比如: short f(); printf("%d\n", sizeof(f())); 输出的结果是sizeof(short),即2。 4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。 5.大部分编译程序 在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)可以用来定义数组维数的原因 char str[20]="0123456789"; int a=strlen(str); //a=10; int b=sizeof(str); //而b=20; 6.strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,不是类型占内存的大小。 7.sizeof后如果是类型必须加括弧,如果是变量名可以不加括弧。这是因为sizeof是个操作符不是个函数。 8.当适用了于一个结构类型时或变量, sizeof 返回实际的大小, 当适用一静态地空间数组, sizeof 归还全部数组的尺寸。 sizeof