- 作者简介:一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。
- 座右铭:未来是不可确定的,慢慢来是最快的。
- 个人主页:极客李华-CSDN博客
- 合作方式:私聊+
- 这个专栏内容:BAT等大厂常见后端java开发面试题详细讲解,更新数目100道常见大厂java后端开发面试题。
- 我的CSDN社区:https://bbs.csdn.net/forums/99eb3042821a4432868bb5bfc4d513a8
- 微信公众号,抖音,b站等平台统一叫做:极客李华,加入微信公众号领取各种编程资料,加入抖音,b站学习面试技巧,职业规划
字符串的比较
相关文章路径: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 相等,则函数值为零。
裁判程序
#include <stdio.h>
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;
}
/* 你提交的代码将被嵌在这里 */
输入样例1
stock
stack
输出样例1
a > b
输入样例2
be
bed
输出样例2
a < b
输入样例3
heart
heart
输出样例3
a == b
提交代码:
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;
}