开发手册 欢迎您!
软件开发者资料库

C语言字符串处理函数 strcmp()和strncmp()的区别及使用

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 strcmp()和strncmp()的区别使用方法,以及相关的示例代码。

1、strcmp()

比较两个字符串的大小,比较的是字符 ASCII 码大小。代码如下,

#include #include #include int main(){/*int strcmp(const char *s1, const char *s2);  参数s1:字符串 1 首地址s2:字符串 2 首地址返回值相等:0 大于:>0 小于:<0*/    //字符串比较    char arr1[] = "AbCd";    char arr2[] = "abcd";    char arr3[] = "AbCd";    char arr4[] = "ABCD";    printf("%d\n", strcmp(arr1, arr2));    printf("%d\n", strcmp(arr1, arr3));    printf("%d\n", strcmp(arr1, arr4));    return 0;}

2、strncmp()

比较两个字符串的前 n 个字符的大小,比较的是字符 ASCII 码大小。代码如下,

#include #include int main (){/*int strncmp(const char *s1, const char *s2, size_t n); 参数s1:字符串 1 首地址s2:字符串 2 首地址n:指定比较字符串的数量返回值相等:0 大于:> 0 小于:< 0*/   char str1[15];   char str2[15];   int ret;   strcpy(str1, "abcdef");   strcpy(str2, "ABCDEF");   ret = strncmp(str1, str2, 4);   if(ret < 0)   {      printf("str1 小于 str2");   }   else if(ret > 0)   {      printf("str2 小于 str1");   }   else   {      printf("str1 等于 str2");   }      return(0);}

3、strcmp()和strncmp()区别

strcmp()strncmp()作用相同。不同之处是,strncmp函数是指定比较size个字符。如果两个字符串s1s2的前size个字符相同,函数返回值为0。代码如下,

#include #include int main(int argc, char **argv){    char *a = "aBcDeF";    char *b = "AbCdEf";    char *c = "aacdef";    char *d = "aBcDeF";    printf("strcmp(a,b) : %d\n", strcmp(a, b));    printf("strcmp(a,c) : %d\n", strcmp(a, c));    printf("strcmp(a,d) : %d\n", strcmp(a, d));    printf("strncmp(a,b,1) : %d\n", strncmp(a, b , 1));    printf("strncmp(a,c,2) : %d\n", strncmp(a, c , 2));    printf("strncmp(a,d,3) : %d\n", strncmp(a, d , 3));    return 0;}