strncpy与strncmp
2012年9月17日
没有评论
strncmp与strcmp
二者都字符串比较,前者有限定最多只能比较n个字符
如:
- strcmp(“hello”,“hel”); //none zero
- strncmp(“hello”,“hel”,3); //zero
strncmp与memcmpy
二者都限定最多比较n个字符,但前者如果遇到’\ 0’结束比较
如:
- strncmp(“ababc”,“abcba”,6); //zero
- memcmp(“ababc”,“abcba”,6); //none zero
strncpy与strcpy
二者均为字符串复制,但前者限定最多只能复制n个字符(不会自动追加’\ 0’)
如:
- char b[]=“abcdef”;
- strcpy(b,“hello”); //b: hello\ 0
- strncpy(b,“hello”,5); //b: hellof
- strcpy(s,d)等价于strncpy(s,d,strlen(s)+1);
strncpy与memcpy
二者均为固定内存复制,但前者如果遇到\ 0会停止复制
如:
- char b[7]=“hello”;
- char d[7] = {0};
- strncpy(d,b,7); //d: “he\ 0\ 0\ 0\ 0\ 0”
- memcpy(d,b,7); //d: “he\ 0llo\ 0”