c语言编程笔录

首页 >   > 笔记大全

笔记大全

c中字符串比较函数strcmp如何用

更新时间:2023-09-29

字符串比较函数介绍

strcmp是C++中常用的字符串比较函数之一,其函数原型为:

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

其中str1和str2均为指向字符串的指针,函数返回值为整型,具体说明如下:

  • 返回值为0,表示两个字符串相等。
  • 返回值小于0,表示str1小于str2。
  • 返回值大于0,表示str1大于str2。

使用strcmp进行字符串比较

下面是一个使用strcmp函数进行字符串比较的例子:

#include 
#include 
using namespace std;

int main()
{
    char str1[] = "hello";
    char str2[] = "world";

    int result = strcmp(str1, str2);

    if (result == 0) {
        cout << "两个字符串相等";
    } else if (result < 0) {
        cout << "str1小于str2";
    } else {
        cout << "str1大于str2";
    }

    return 0;
}

在上面的例子中,我们首先定义了两个字符串str1和str2,然后使用strcmp进行字符串比较,将结果保存在result中。根据result的值,我们可以判断两个字符串的大小关系。

注意事项

在使用strcmp函数进行字符串比较时,需要注意以下几点:

  • strcmp函数只比较字符串中的字符内容,不比较字符串长度和缓冲区大小。
  • 当一个字符串的长度小于另一个字符串时,在比较过程中只比较两个字符串长度相同的部分。
  • 在比较两个字符串时,不区分大小写。

自己实现字符串比较函数

如果你想要自己实现一个字符串比较函数,可以参考以下代码:

#include 
using namespace std;

int my_strcmp(const char* str1, const char* str2)
{
    int i;

    for(i = 0; str1[i] != '\0' && str2[i] != '\0'; i++) {
        if(str1[i] != str2[i])
            break;
    }

    return str1[i] - str2[i];
}

int main()
{
    char str1[] = "hello";
    char str2[] = "world";

    int result = my_strcmp(str1, str2);

    if (result == 0) {
        cout << "两个字符串相等";
    } else if (result < 0) {
        cout << "str1小于str2";
    } else {
        cout << "str1大于str2";
    }

    return 0;
}

在上面的例子中,我们定义了一个my_strcmp函数,使用循环逐个比较两个字符串中的字符,直到找到不相等的字符或者其中一个字符串结束为止,最后根据比较结果返回相应的值。