c语言strcmp函数用法是什么?

1. 简介

在C语言中,strcmp函数是非常常用的字符串处理函数之一。它用于比较两个字符串是否相等,并能返回比较结果。在本文中,我们将会详细介绍该函数的用法及其重要性。

2. 函数原型

在使用任何函数之前,我们需要了解该函数的原型,以便正确地调用该函数。strcmp函数的原型如下:

int strcmp(const char *s1, const char *s2);

该函数返回值为int类型,表示比较结果。如果s1和s2相等,返回值为0,如果s1小于s2,返回值为负数,如果s1大于s2,返回值为正数。

注意:在比较两个字符串时,函数会按照字典序逐个字符进行比较,直到遇到不同的字符为止。

3. 参数说明

该函数有两个参数:

s1:要比较的第一个字符串。

s2:要比较的第二个字符串。

注意:这两个参数都是常量指针类型,即不能改变该指针所指向的字符串。

4. 示例代码

下面通过示例代码来更加直观地理解该函数的用法:

#include <stdio.h>

#include <string.h>

int main()

{

char str1[10] = "hello";

char str2[10] = "world";

int result;

result = strcmp(str1, str2);

if (result == 0)

printf("两个字符串相等\n");

else if (result < 0)

printf("str1小于str2\n");

else

printf("str1大于str2\n");

return 0;

}

在以上代码中,我们定义了两个字符串str1和str2,分别为“hello”和“world”。然后使用strcmp函数比较这两个字符串,并根据比较结果输出不同的结果。

5. 应用场景

strcmp函数在实际编程中应用广泛,特别是字符串处理方面。下面列举一些常见的应用场景:

5.1 判断字符串相等

使用strcmp函数可以判断两个字符串是否相等。例如:

#include <stdio.h>

#include <string.h>

int main()

{

char str1[10] = "hello";

char str2[10] = "hello";

int result;

result = strcmp(str1, str2);

if (result == 0)

printf("两个字符串相等\n");

else

printf("两个字符串不相等\n");

return 0;

}

在以上代码中,我们比较的是同一个字符串“hello”,因此比较结果为相等。

5.2 比较字符串大小

使用strcmp函数可以比较两个字符串的大小关系。例如:

#include <stdio.h>

#include <string.h>

int main()

{

char str1[10] = "apple";

char str2[10] = "banana";

int result;

result = strcmp(str1, str2);

if (result < 0)

printf("str1小于str2\n");

else if (result == 0)

printf("两个字符串相等\n");

else

printf("str1大于str2\n");

return 0;

}

在以上代码中,我们比较的是两个字符串“apple”和“banana”,因此比较结果为str1小于str2。

5.3 排序字符串

使用strcmp函数可以对多个字符串进行排序。例如:

#include <stdio.h>

#include <string.h>

#define MAX_SIZE 10

int main()

{

int i, j;

char temp[20];

char names[MAX_SIZE][20] = {"abe", "zhangsan", "li4", "wang", "zhao", "apple", "boy", "girl", "how", "bill"};

int n = MAX_SIZE;

for (i = 0; i < n-1; i++)

{

for (j = i+1; j < n; j++)

{

if (strcmp(names[i], names[j]) > 0)

{

strcpy(temp, names[i]);

strcpy(names[i], names[j]);

strcpy(names[j], temp);

}

}

}

for (i = 0; i < n; i++)

printf("%s\n", names[i]);

return 0;

}

在以上代码中,我们定义了一个字符串数组names,并为其赋初值。然后使用strcmp函数进行排序,并输出排序结果。

注意:在以上代码中,我们使用了另外一个字符串处理函数strcpy,它的作用是将一个字符串复制到另外一个字符串中。如果不了解该函数,请参见本人的其它文章。

6. 总结

在实际编程中,strcmp函数是非常常用的字符串处理函数之一。掌握该函数的用法,能够帮助我们更加高效地进行字符串处理,提高程序的运行效率。

注意:在使用该函数时,应该避免比较长度不一样的字符串,否则可能会出现不可预知的结果。

后端开发标签