单片机单片机c语言字符串操作语言字符串操作
大家知道strcpy 是子环节复制字符串,可能不知道还有个strncpy,这是复制指定长度的字符串
chardes[]="Hello,iam!"; charsource[]="abcdefg"; strncpy(chardes,charsource,3); 这时chardes的值是abc 注意这
里可不是把abc添加在!后面的,是从chardes这个数组的首地址开始赋值的,最后会加上' '做结束符
字符串转int atoi
函数原型int atoi(const char *nptr);
int val = atoi("12");
这样va就l等于12
int转字符串 itoa
函数原型:char*itoa(intvalue,char*string,intradix);
int number=123456;
char string[25];
itoa(number,string,10);
string就是123456 后面的10是说转化成10进制 16就是转化成16进制 8就是转化成8进制 ,也可以转化成2进制
字符串截取 strncpy
原型:char*strncpy(char*dest,char*src,size_tnum);
大家知道strcpy 是子环节复制字符串,可能不知道还有个strncpy,这是复制指定长度的字符串
chardes[]="Hello,iam!";
charsource[]="abcdefg";
strncpy(chardes,charsource,3);
这时chardes的值是abc 注意这里可不是把abc添加在!后面的,是从chardes这个数组的首地址开始赋值的,最后会加上' '做结
束符。
改变一下用法
strncpy(chardes+1,charsource+2,3);
这时候chardes的值是Hcde 为什么是这个值,能看懂不?自己思考一下。偏移哈。
字符串构造 sprintf
原型 int sprintf( char *buffer, const char *format, [ argument] … );
这个应该很多人都知道。
char dest[20];
int val=12;
sprintf(dest,"val=%d",val);
dest的值就是"val=12" 那个12也是字符串了哈注意下。
这个函数也可以整形、浮点型转字符串
sprintf(dest,"%f",3.1415926f);
dest 就是“3.1415926”
sprintf(dest,"现在的时间是%s,请注意","2014-04-09 11:27:21"); 后面这个字符串也可以换成变量
dest的值是 "现在的时间是2014-04-09 11:27:21,请注意"
直接对内存操作memset
评论0
最新资源