网站建设标准流程,深圳展台制作公司,塘厦网站建设,做站群网站好优化吗C语言标准库中的 strcmp() 函数用于比较两个字符串。 strcmp() 函数原型如下#xff1a; int strcmp (const char * str1, const char * str2); const char *str1 表示待比较字符串 1 的首地址#xff1b;const char *str2 表示待比较字符串 2 的首地址。
如果两个字符串相…C语言标准库中的 strcmp() 函数用于比较两个字符串。 strcmp() 函数原型如下 int strcmp (const char * str1, const char * str2); const char *str1 表示待比较字符串 1 的首地址const char *str2 表示待比较字符串 2 的首地址。
如果两个字符串相同则返回 0否则返回其他值。 下面程序展示了一个使用 strcmp() 函数比较字符串的示例
/**
* 快速入门C语言 https://xiecoding.cn/c/
**/
#include stdio.h
#include string.h
int main()
{const char *str1 abcdefg;const char *str2 abcdefgh;const char *str3 abcdef;// str1 与自己进行比较int ret strcmp(str1, str1);printf(%d\n, ret);// str1 与 str2 进行比较ret strcmp(str1, str2);printf(%d\n, ret);// str1 与 str3 进行比较ret strcmp(str1, str3);printf(%d\n, ret);return 0;
}
运行结果为 0 -1 1 字符串str1与自己进行比较结果相同因此返回了 0。abcedfg 与 abcedfgh 进行比较返回了 -1。abcedfg 与 abcedf 进行比较返回了 1。 不相同的情况下有两种不同的结果1 和 -1。这是为什么呢 下图展示了字符串比较的过程 图 1 字符串比较内部规则
字符串比较函数会依次比较每个字符如果相同则比较下一个字符如果直到 \0 字符都相同则返回 0表示两字符串相同如果不相同则比较当前字符的 ASCII 码。 如果 str1 的当前字符大于 str2 的当前字符则返回 1否则返回 -1。例如当 str1 与 str2 进行比较时不同的字符是 \0 与 h因为 \0 小于 h所以返回 -1str1 与 str3 比较时不同的字符是 g 与 \0因为 g 大于 \0所以返回 1。