C语言标准函数库中包括 strcmp 函数,用于字符串的比较。作为练习,我们自己编写一个功能与之相同的函数。
函数原型
int StrCmp(const char *str1, const char *str2);
说明:str1
和 str2
分别为两个字符串的起始地址。按字典排序法,若 str1
串值大于 str2
,则函数值为正整数;若 str1
串值小于 str2
,则函数值为负整数;若 str1
串值与 str2
相等,则函数值为0。
裁判程序
#include <stdio.h>
#include <string.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);
puts(!r ? "a = b" : r > 0 ? "a > b" : "a < b");
return 0;
}
/* 你提交的代码将被嵌在这里 */
输入样例1
stock
stack
输出样例1
a > b
输入样例2
he
her
输出样例2
a < b
输入样例3
bye
bye
输出样例3
a = b
int StrCmp(const char *str1, const char *str2)
{
int max;
int i;
int a=strlen(str1);
int b=strlen(str2);
if(a>b)
max=a;
else
max=b;
for(i=0;max>0;i++,max--){
if(str1[i]>str2[i]){
return 1;
break;
}
else if(str1[i]<str2[i]){
return -1;
break;
}
else if(str1[i]==str2[i]){
continue;
while(max==1){
return 0;
}
}
}
}