字符串之strcmp

一、概述

strcmp是C语言中非常常用的一个字符串比较函数。strcmp函数用来比较两个字符串的大小,通常用于按照字典顺序比较两个字符串。

strcmp函数定义在string.h头文件中,函数原型如下:

```

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

```

其中,s1和s2为字符串指针,返回值为整型。

strcmp函数按照ASCII码的大小比较两个字符串。

如果s1大于s2,返回一个正整数;如果s1小于s2,返回一个负整数;如果s1等于s2,返回0。

二、使用方法

下面是一个使用strcmp函数的简单例子:

```

#include

#include

int main ()

{

char str1[50];

char str2[50];

int ret;

strcpy(str1, "hello");

strcpy(str2, "world");

ret = strcmp(str1, str2);

if(ret < 0) {

printf("str1 小于 str2");

} else if(ret > 0) {

printf("str1 大于 str2");

} else {

printf("str1 等于 str2");

}

return(0);

}

```

程序输出结果为:"str1 小于 str2"。

三、案例说明

1. 排序字符串

在实际应用中,可以使用strcmp函数来排序字符串数组,比如可以用qsort函数来对一个字符串数组进行排序,排序规则即为strcmp函数的比较结果。

下面是一个排序字符串的示例程序:

```

#include

#include

#include

int cmp(const void *a, const void *b) {

return strcmp(*(const char **)a, *(const char **)b);

}

int main(){

char *strs[] = {"apple", "orange", "banana", "pear"};

int size = sizeof(strs) / sizeof(strs[0]);

qsort(strs, size, sizeof(char *), cmp);

for(int i = 0; i < size; i++)

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

return 0;

}

```

程序输出结果为:

```

apple

banana

orange

pear

```

2. 模糊匹配字符串

当需要模糊匹配字符串时,可以使用strcmp函数,将匹配字符串先转换为小写(或大写),并将要匹配的字符串也转换为小写(或大写),然后使用strcmp进行比较。

下面是一个模糊匹配字符串的示例程序:

```

#include

#include

#include

int match(const char *str, const char *pattern) {

while(*pattern) {

if(*pattern == '*') {

if(!*++pattern) return 1;

while(*str)

if(match(str++, pattern)) return 1;

return 0;

}

if(tolower(*str) != tolower(*pattern)) return 0;

str++;

pattern++;

}

return !*str && !*pattern;

}

int main(){

char *str = "Hello, world!";

char *pattern = "*world*";

if(match(str, pattern))

printf("匹配成功\n");

else

printf("匹配失败\n");

return 0;

}

```

程序输出结果为:"匹配成功"。

四、总结

以上是strcmp函数的介绍和使用方法,以及两个案例的说明。strcmp函数在C语言中是非常常用的函数,掌握该函数的使用方法可以帮助我们更高效地完成字符串处理任务。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(118) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部