1、strcmp()
比较两个字符串的大小,比较的是字符 ASCII 码大小。代码如下,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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
个字符。如果两个字符串s1
与s2
的前size
个字符相同,函数返回值为0
。代码如下,
#include <stdio.h>
#include <string.h>
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;
}