求两个字符串的差值

lpyzl 2009-07-21 08:27:35
下面这个程序的上目的是求出两个字符串的差值,请问一下,哪个地方错了?求出的结果不正确。。。
#include <stdio.h>

int main()
{
int s=0;
char s1[100];
char s2[100];
gets(s1);
printf("\n");
gets(s2);
printf("\n");
int i;

for( i=0; i<100; i++ )
s += (int)(s1[i]-s2[i]);

printf("%d\n",s);

system("pause");

return 0;
}

...全文
772 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nio96 2009-07-21
  • 打赏
  • 举报
回复
s1和s2的值都不定,结果可能一致吗?
ernst20020530 2009-07-21
  • 打赏
  • 举报
回复
如果輸入的字符串長度不到100,你讓他循環100次,那不要出問題嗎,空的內容不能減
fireyou 2009-07-21
  • 打赏
  • 举报
回复
长度不等怎么减
meipen 2009-07-21
  • 打赏
  • 举报
回复
就算字符串相等也没用,因为每个字符的差值有正有负,也许最后恰好和为0,难道要说他俩相等吗
所以楼主的方法就不对
字符串不能简单的比较每个字符差值
应该以第一个不同字符的差值为整个字符串的差值
bitxinhai 2009-07-21
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
int s=0;
char s1[100];
char s2[100];
gets(s1);
printf("\n");
gets(s2);
printf("\n");
int i;

for( i=0;s1[i]!= '\0'&&s2[i] != '\0'; i++ ) s += (int)(s1[i]-s2[i]);

printf("%d\n",s);

system("pause");

return 0;
}
求差值你也说的不太清楚,当两个字符串长度不相等时,怎样办啊??
abcdef0966 2009-07-21
  • 打赏
  • 举报
回复
怎么不对啦?好像没问题啊
pengzhixi 2009-07-21
  • 打赏
  • 举报
回复
你确认你的两个字符串的长度都一样么
bxl1989 2009-07-21
  • 打赏
  • 举报
回复
说说有啥不对的。给出个例子吧。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧