C语言:编写函数MyStrCmp并用相应主函数进行测试
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
| 123456789101112131415161718192021222324252627282930313233343536373839 | #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;} |
有只小跳蛙
TA贡献1824条经验 获得超8个赞
#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;
}
- 3 回答
- 0 关注
- 896 浏览
添加回答
举报
0/150
提交
取消
