编写函数mystrcmp()实现两个字符串的比较,并在主函数中测试
不出结果,我可能在前面就错了
#include
int mystrcmp(char s1[],char s2[]) {
int i,k;
for(i=0;s1[i]==s2[i];i++)
k=0;
if(s1[i]>s2[i]) k=1;
if(s1[i]-1;
return k;
}
int main(){
char s1[5];
char s2[5];
int k;
gets (s1);
gets (s2);
k=mystrcmp(s1[5],s2[5]);
printf("%d\n",k);
return 0;
}
给你改了
#include <stdio.h>
#include <string.h>
int mystrcmp(char s1[], char s2[]) {
int i,k,l1=strlen(s1),l2=strlen(s2);
int len = l1<l2?l1:l2;
for(i=0;i<len;i++){
if(s1[i]>s2[i]) return 1;
if(s1[i]<s2[i]) return -1;
}
if(l1==l2) return 0;
else if(l1<l2) return -1;
else return 1;
}
int main(){
char s1[5];
char s2[5];
int k;
gets(s1);
gets(s2);
k=mystrcmp(s1,s2);
printf("%d\n",k);
return 0;
}
修改如下,供参考:
#include <stdio.h>
int mystrcmp(char s1[],char s2[]) {
int i = 0,k = 0;
while (s1[i] && s1[i] == s2[k]) i++,k++; //修改
if (s1[i] - s2[k] > 0) //修改
return 1;
else if (s1[i] - s2[k] == 0) //修改
return 0;
else //修改
return -1;
//for(i=0;s1[i]==s2[i];i++)
// k=0;
//if(s1[i]>s2[i]) k=1;
//if(s1[i]<s2[i]) k=-1;
//return k;
}
int main(){
char s1[5];
char s2[5];
int k;
gets (s1);
gets (s2);
k=mystrcmp(s1,s2); // k=mystrcmp(s1[5],s2[5]); //修改
printf("%d\n",k);
return 0;
}