学科分类
目录
C语言

字符串比较函数

在实际编程中,经常会比较字符串的大小,例如按字母顺序对姓名进行排序,为此C语言提供了strcmp()函数和strncmp()函数,下面对这两个函数进行详细介绍。

1、strcmp()函数

strcmp()函数用于比较两个字符串的内容是否相等,函数声明如下:

int strcmp(const char *str1, const char *str2);

在上述函数声明中,参数str1和str2代表要进行比较的两个字符串。如果两个字符串的内容相同,strcmp()返回0,否则返回非零值。

调用strcmp()函数对两个字符串进行比较,示例代码如下:

char *p1 = "nihao";
char *p2 = "hello";
int num = strcmp(p1, p2);   //值为1

上述代码中先定义了两个字符指针p1、p2,分别指向字符串“nihao”、“hello”,然后将两个指针传入strcmp()函数比较两个字符串的大小,并使用整型变量num记录比较结果。

注意:

函数strcmp()只能接收字符指针作为参数,不接收单个字符;如果传入的是某个字符(如'a'),那么'a'会被视为指针,程序将报错。

2、strncmp()函数

在C语言中,strncmp()函数用来比较两个字符串中前n个字符是否完全一致。函数声明如下:

int strncmp(const char *str1, const char *str2, size_t n);

在上述函数声明中,参数n表示要比较的字符个数。如果字符串str1和str2的长度都小于n,那么就相当于使用strcmp()函数对字符串进行比较。

strncmp()函数的用法与strcmp()函数的用法相似,示例代码如下:

char *p1 = "abcdef";
char *p2 = "abcwdfg";
int num1 = strncmp(p1, p2, 3);   //比较前3个字符,相等,值为0
int num2 = strncmp(p1, p2, 4);   //比较前4个字符,不相等,值为-1

上述代码先定义了两个字符指针p1、p2,分别指向字符串“abcdef”、“abcwdfg”,然后调用strncmp()函数取两个字符串的前3个字符进行比较,使用整型变量num1记录比较结果;其次调用strncmp()函数比较两个字符串的前4个字符进行比较,使用整型变量num2记录比较结果。由于两个字符串的前3个字符都是abc,num1的值为0;由于两个字符串的第4个字符不同,num2的值为-1。

点击此处
隐藏目录