C语言函数strcmp()(比较两个字符串)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言函数strcmp()(比较两个字符串)相关的知识,希望对你有一定的参考价值。

C 库函数 - strcmp()

文章目录

描述

C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。

声明

下面是 strcmp() 函数的声明。

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

参数

  • str1 – 要进行比较的第一个字符串。
  • str2 – 要进行比较的第二个字符串。

返回值

该函数返回值如下:

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str1 大于 str2。
  • 如果返回值等于 0,则表示 str1 等于 str2。

实例

下面的实例演示了 strcmp() 函数的用法。

#include <stdio.h>
#include <stdlib.h>

int main()

    char str1[15];
    char str2[15];
    int ret;


    strcpy(str1, "abcdef");
    strcpy(str2, "ABCDEF");

    ret = strcmp(str1, str2);

    if (ret < 0)
    
        printf("str1 小于 str2");
    
    else if (ret > 0)
    
        printf("str1 大于 str2"); //str1 大于 str2
    
    else
    
        printf("str1 等于 str2");
    

    return(0);

注意

两个字符串自左向右逐个字符相比(按 ASCII 值大小相比较),直到出现不同的字符或遇 \\0 为止。如:

  1. “A”<“B”
  2. “A”<“AB”
  3. “Apple”<“Banana”
  4. “A”<“a”
  5. “compare”<“computer”

特别注意:strcmp(const char *s1,const char * s2) 这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

ANSI 标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。

当两个字符串不相等时,C 标准没有规定返回值会是 1 或 -1,只规定了正数和负数。

有些会把两个字符的 ASCII 码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。

参考文章:C 库函数 - strcmp()

以上是关于C语言函数strcmp()(比较两个字符串)的主要内容,如果未能解决你的问题,请参考以下文章

C语言问题。。。strcmp怎么运用啊?

C语言函数strcmp()(比较两个字符串)

C语言编程-用数组方法编写函数strcmp,比较两个字符串的大小。

c语言中strcmp的用法

字符串比较函数strcmp是怎样比较出两个字符串的大小的?

用strcmp函数怎么比较两个字符串的比较?