📜  C C++中的strcmp()(1)

📅  最后修改于: 2023-12-03 15:13:44.455000             🧑  作者: Mango

C/C++中的strcmp()

在C/C++中,strcmp()是一个用于字符串的标准函数,它用于比较两个字符串是否相等。

函数原型

strcmp()函数的原型如下:

int strcmp(const char *str1, const char *str2);
函数功能

strcmp()函数用于比较两个字符串,其中:

  • 如果str1小于str2,则返回一个小于0的整数。
  • 如果str1等于str2,则返回0。
  • 如果str1大于str2,则返回一个大于0的整数。
使用方法

以下代码演示了如何使用strcmp()函数:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[50] = "Hello";
    char str2[50] = "World";
    char str3[50] = "Hello";

    printf("Comparing str1 and str2: %d\n", strcmp(str1, str2));
    printf("Comparing str1 and str3: %d\n", strcmp(str1, str3));
    printf("Comparing str2 and str1: %d\n", strcmp(str2, str1));

    return 0;
}

输出结果为:

Comparing str1 and str2: -15
Comparing str1 and str3: 0
Comparing str2 and str1: 15
注意事项
  • strcmp()函数只能用于比较ASCIIZ字符串,即字符串末尾必须是'\0'
  • 如果两个字符串的末尾不是'\0',则strcmp()函数的行为是未定义的。
  • 在比较字符串时,strcmp()函数会逐个字符地比较字符串,直到遇到不同的字符或遇到字符串末尾为止,因此对于较长的字符串,strcmp()函数的效率可能不高。
  • 对于大多数实际的应用,C++语言中的std::string类是更为理想的字符串类型。