首页 > C/C++, Linux > strncpy与strncmp

strncpy与strncmp

2012年9月17日 发表评论 阅读评论

strncmp与strcmp
二者都字符串比较,前者有限定最多只能比较n个字符
如:

  1. strcmp(“hello”,“hel”);    //none zero
  2. strncmp(“hello”,“hel”,3); //zero

strncmp与memcmpy
二者都限定最多比较n个字符,但前者如果遇到’\ 0’结束比较
如:

  1. strncmp(“ababc”,“abcba”,6); //zero
  2. memcmp(“ababc”,“abcba”,6);  //none zero

strncpy与strcpy
二者均为字符串复制,但前者限定最多只能复制n个字符(不会自动追加’\ 0’)
如:

  1. char b[]=“abcdef”;
  2. strcpy(b,“hello”);     //b: hello\ 0
  3. strncpy(b,“hello”,5);  //b: hellof
  4. strcpy(s,d)等价于strncpy(s,d,strlen(s)+1);

strncpy与memcpy
二者均为固定内存复制,但前者如果遇到\ 0会停止复制
如:

  1. char b[7]=“hello”;
  2. char d[7] = {0};
  3. strncpy(d,b,7); //d: “he\ 0\ 0\ 0\ 0\ 0”
  4. memcpy(d,b,7);  //d: “he\ 0llo\ 0”
分类: C/C++, Linux 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.