#include "stdio.h"
int fuzhi(char *s1,char *s2)
{int i,j=0;
for(i=0;s1[i]!='\0'||s2[i]!='\0';i++)
{
if(s1[i]>s2[i])
{
j=1;
return j;break;
}
else if(s1[i]<s2[i])
{
j=-1;
return j;
break;
}
if(s1[i]==s2[i])
continue;
}
if(j==0&&s1[i]=='\0'&&s2[i]=='\0')
return 0;
}
main()
{char s1[20],s2[20];
int i,x;
gets(s1);
gets(s2);
x=fuzhi(s1,s2);
if(x>0)
{printf("s1>s2\n");
}
else if(x<0)
{printf("s1<s2\n");
}
else
{printf("s1==s2\n");
}
puts(s1);
puts(s2);
getchar();
}
这个代码居然在电脑上调试通过,但我还有一些问题,我用的是VC++6.0
比如说我输入a aa,当读到第一个字符串的'\0'的时候就跳出for循环了啊,直接执行下面的语句了.
但是,我在机子上调试哦的时候,居然得到了正确答案,s1<s2,请问这是怎么回事啊
6 个解决方案
#1
建议你试一下这个函数strcmp()
#2
我知道这个函数,但我们现在不讨论用库函数,所以,麻烦各位看看了/
#3
没听懂得你在说什么
#4
#include "string.h"
#include "stdio.h"
int fuzhi(char *s1,char *s2)
{int i,j=0;
for(i=0;s1[i]!='\0'&& s2[i]!='\0';i++)
{
if(s1[i]>s2[i])
{
j=1;
return j;
}
else if(s1[i] <s2[i])
{
j=-1;
return j;
}
if(s1[i]==s2[i])
continue;
}
if(s1[i]=='\0'&& s2[i]!='\0') {
return -1;
}
else if(s1[i] !='\0'&& s2[i]=='\0') {
return 1;
}
else
return 0;
}
int main()
{char s1[20],s2[20];
int i,x;
gets(s1);
gets(s2);
x=fuzhi(s1,s2);
if(x>0)
{printf("s1>s2\n");
}
else if(x <0)
{printf("s1 <s2\n");
}
else
{printf("s1==s2\n");
}
puts(s1);
puts(s2);
getchar();
}
#5
字符输入有时就会以空格结束的!这个要注意以下!
#6
s1[0]='a',s1[1]='\0'
s2[0]='a',s2[1]='a',s2[2]='\0'
比较s1[1]<s2[1]
s2[0]='a',s2[1]='a',s2[2]='\0'
比较s1[1]<s2[1]
#1
建议你试一下这个函数strcmp()
#2
我知道这个函数,但我们现在不讨论用库函数,所以,麻烦各位看看了/
#3
没听懂得你在说什么
#4
#include "string.h"
#include "stdio.h"
int fuzhi(char *s1,char *s2)
{int i,j=0;
for(i=0;s1[i]!='\0'&& s2[i]!='\0';i++)
{
if(s1[i]>s2[i])
{
j=1;
return j;
}
else if(s1[i] <s2[i])
{
j=-1;
return j;
}
if(s1[i]==s2[i])
continue;
}
if(s1[i]=='\0'&& s2[i]!='\0') {
return -1;
}
else if(s1[i] !='\0'&& s2[i]=='\0') {
return 1;
}
else
return 0;
}
int main()
{char s1[20],s2[20];
int i,x;
gets(s1);
gets(s2);
x=fuzhi(s1,s2);
if(x>0)
{printf("s1>s2\n");
}
else if(x <0)
{printf("s1 <s2\n");
}
else
{printf("s1==s2\n");
}
puts(s1);
puts(s2);
getchar();
}
#5
字符输入有时就会以空格结束的!这个要注意以下!
#6
s1[0]='a',s1[1]='\0'
s2[0]='a',s2[1]='a',s2[2]='\0'
比较s1[1]<s2[1]
s2[0]='a',s2[1]='a',s2[2]='\0'
比较s1[1]<s2[1]