C语言:编写函数MyStrCmp并用相应主函数进行测试

函数MyStrCmp的原型是:int MyStrCmp( char
*s1,char *s2 ),其功能是比较两个字符串s1和s2的大小。请编写函数MyStrCmp(不能使用标准库函数函数strcmp( ))并用相应主函数进行测试。主函数输入字串时,有字符串长度限制提示。
请务必于11月9日10点之前完成,才能得到分数。

#include<stdio.h>
#include<string.h>
int MyStrCmp( char *s1,char *s2 );
int main()
{
char s1[30], s2[30];

gets(s1);
gets(s2);

printf("%d\n", MyStrCmp(s1, s2));

return 0;
}

int MyStrCmp(char * s1, char * s2)
{
int flag = 0;//0表示相等,1表示s1大于s2,-1表示s1小于s2
int minLength = 0; //较短串的长度
int i = 0;

minLength = strlen(s1) >= strlen(s2) ? strlen(s1) : strlen(s2);

for(i = 0; i < minLength; i++)
{
if(s1[i] != s2[i])
{
if(s1[i] > s2[i])
flag = 1;
else
flag = -1;
break;
}
else
continue;
}

return flag;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-23
#include<stdio.h>
#define N 100

int MyStrCmp(char * s1, char * s2){
int ret, i=0;
while(s1[i]!='\0' && s2[i]!='\0' && s1[i]==s2[i])
i++;
if(s1[i]==0 && s2[i]==0)
ret=0; //相等
else if(s1[i]==0)
ret=-1; //串s1小于串s2
else if(s2[i]==0)
ret=1; //串s1大于串s2
else if(s1[i]>s2[i])
ret=1; //串s1大于串s2
else
ret=-1; //串s1小于串s2
return ret;
}

int main(){
char s1[N], s2[N];
gets(s1);
gets(s2);
printf("%s\n%s\n",s1,s2);
printf("%d\n", MyStrCmp(s1, s2));
return 0;
}
第2个回答  2014-11-02
BOOL MyStrCmp(char* a,char* b)

{
return a[0]>=b[0];

}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网