C语言字符串的比较

分类: 365bet线上娱 发布时间: 2026-06-12 17:14:14
作者: admin 阅读: 1159 | 点赞: 398
C语言字符串的比较

字符串的比较相关文章路径:C语言求字符串的长度->C语言字符串的复制->

C语言的字符串的联接->C语言字符串的比较->C语言查找字符->C语言BF算法->C语言输出字符串->C语言输入字符串

C 语言标准函数库中包括 strcmp 函数,用于字符串的比较。作为练习,我们自己编写一个功能与之相同的函数。

函数原型

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

说明:str1 和 str2 分别为两个字符串的起始地址。按字典排序法,若 str1 串值大于 str2,则函数值为正整数;若 str1 串值小于 str2,则函数值为负整数;若 str1 串值与 str2 相等,则函数值为零。

裁判程序

代码语言:javascript复制#include

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

int main()

{

char a[1024], b[1024];

int r;

gets(a);

gets(b);

r = StrCmp(a, b);

if (r > 0)

{

puts("a > b");

}

else if (r < 0)

{

puts("a < b");

}

else // r == 0

{

puts("a == b");

}

return 0;

}/* 你提交的代码将被嵌在这里 */

代码语言:javascript复制输入样例1

stock

stack

输出样例1

a > b

输入样例2

be

bed

输出样例2

a < b

输入样例3

heart

heart

输出样例3

a == b提交代码:

代码语言:javascript复制int StrCmp(const char *str1, const char *str2)

{

int flag = 1;

int k;

while (*str1 == *str2 && flag == 1) // flag用于记录是否要退出循环 首先是比较两个字符串相同的部分

{

if(*str1 == '\0') // 当字符串遍历完了之后 flag=0然后跳出循环

{

k = 0;

flag = 0;

}

else

{

str1++;

str2++;

}

}

if(*str1 != *str2) // 最后比较不同的部分 部分部分的字符编码谁大一些

{

k = *str1 - *str2;

}

return k;

}