比较两个字符串s1和s2,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。
我自己写的代码在输入“123 123”的时候结果错误了(应该是“result:0”,结果输出为“result:49”),想不明白是什么问题?是空格的问题吗?
#include <stdio.h>
int main()
{
int ret = 0;
int index = 0;
char s1[100] = {0};
char s2[100] = {0};
printf("请输入s1:");
gets(s1);
printf("请输入s2:");
gets(s2);
// 将s1和s2中的字符从前往后逐个进行比较,相等继续往后,
// 不相等时ret中结果不为0,!ret则为0 循环结束
// 如果一个走到末尾,一个未走到末尾 ret也不为0, !ret为0,循环结束
// 如果两个字符串相等,同时达到末尾,循环结束
while (!(ret = s1[index] - s2[index]) && '\0' != s1[index] && '\0' != s2[index])
{
++index;
}
printf("%d\n", ret);
return 0;
}
用strcmp进行比较就行
具体要看你代码怎么写的
#include<stdlib.h>
#include<stdio.h>
int main()
{
int i,sum=0;
char s1[N]=".",s2[N]=".";// 以/0填充空白
gets(s1); //输入s1,s2
gets(s2);
for(i=0;s1[i]!='\0'||s2[i]!='\0';i++) //两数组每对只要有一个不为\0就可以进行循环(为了减少循环次数)
{
sum=sum+s1[i]-s2[i]; //计算差值
}
printf("%d",sum);
system("pause");
return 0;
}