CPlus中对strcmp的介绍
#include <stdio.h> #include <string.h> int main () { char key[] = "apple"; char buffer[80]; do { printf ("Guess my favorite fruit? "); fflush (stdout); scanf ("%79s",buffer); } while (strcmp (key,buffer) != 0); puts ("Correct answer!"); return 0; }
CPlus中对strncmp的介绍
/* strncmp example */ #include <stdio.h> #include <string.h> int main () { char str[][5] = { "R2D2" , "C3PO" , "R2A6" }; int n; puts ("Looking for R2 astromech droids..."); for (n=0 ; n<3 ; n++) if (strncmp (str[n],"R2xx",2) == 0) { printf ("found %s\n",str[n]); } return 0; }
CPlus中对memcmp的介绍
/* memcmp example */ #include <stdio.h> #include <string.h> int main () { char buffer1[] = "DWgaOtP12df0"; char buffer2[] = "DWGAOTP12DF0"; int n; n=memcmp ( buffer1, buffer2, sizeof(buffer1) ); if (n>0) printf ("'%s' is greater than '%s'.\n",buffer1,buffer2); else if (n<0) printf ("'%s' is less than '%s'.\n",buffer1,buffer2); else printf ("'%s' is the same as '%s'.\n",buffer1,buffer2); return 0; }
区别
strcmp和strncmp的比较
strcmp和strncmp都是C语言中用于比较两个字符串的函数,它们的区别在于比较的方式和长度限制。
strcmp函数用于比较两个字符串,它会逐个比较两个字符串中对应位置上的字符,直到遇到不相等的字符或者到达字符串结束符’\0’。
如果两个字符串相等,返回值为0;
如果第一个字符串大于第二个字符串,返回值大于0;
如果第一个字符串小于第二个字符串,返回值小于0。
strncmp函数也用于比较两个字符串,但它额外需要一个参数来指定要比较的字符个数。它会比较两个字符串中前n个字符,其中n为第三个参数所指定的字符个数。
如果前n个字符都相等,则返回值为0;
否则,返回值遵循和strcmp相同的规则。
strcmp和memcmp的比较
memcmp和strcmp是C语言中用于比较字符串或者字节序列的函数,它们有一些区别。
memcmp函数用于比较两个内存区域的内容。这个函数通过比较两个内存区域的字节进行操作,并返回一个整数值来表示比较结果。
如果返回值小于0,表示第一个内存区域小于第二个;
如果返回值大于0,表示第一个内存区域大于第二个;
如果返回值等于0,表示两个内存区域相等。
memcmp函数比较的是字节序列,不仅可以用来比较字符串,也可以用来比较其他类型的数据。
strncmp是strcmp的一种变体函数,它除了比较两个字符串的内容外,还可以指定比较的长度。它接受三个参数,分别是要比较的两个字符串和要比较的长度。
strcmp函数用于比较两个字符串的内容。这个函数通过比较两个字符串中对应位置的字符进行操作,并返回一个整数值来表示比较结果。
如果返回值小于0,表示第一个字符串小于第二个;
如果返回值大于0,表示第一个字符串大于第二个;
如果返回值等于0,表示两个字符串相等。strcmp函数只能用来比较字符串。
所以,区别在于memcmp函数可以比较字节序列,而strcmp函数只能比较字符串。此外,对于包含空字符的字符串,strcmp函数在遇到空字符时会停止比较,而memcmp函数则会继续比较。