编一个程序,实现对键盘输入的两个字符串进行比较,然后输出两个字符串第一个不相同字符的ASCII码之差!

#include<stdio.h>
#include<string.h>
void main()
{
char str1[20],str2[20];
int a,i;
gets(str1);
gets(str2);
if(strcmp(str1,str2)>0)
printf("str1>str2");
else printf("str1<str2");
for(i=0;i<20;i++)
{
if(str1[i]!=str2[i])
a=str1[i]-str2[i];
}
printf("差值=%d",a);
}这是我写的程序,我知道for循环部分出错了,但不会改,请求高人解答!

1、打开VBA编辑界面。

2、首先先编写一个测试函数的框架,如下图所示。

3、接着定义两个字符串变量用来存放用来比较的两个字符串的。Dim str1 As StringDim str2 As String。

4、然后为定义好的两个字符串变量赋值。 str1 = "ABCD" str2="abcd"。

5、然后使用StrComp函数进行两个字符串比较,这个函数有三个参数,前两个参数是两个字符串,最后一个参数为1,是说明要进行字符串的比较,如果的不给第三个参数,那就是进行而二进制的比较。

6、最后点击运行查看结果。(结果为0说明两者相等,-1就是前者小于后者,1就是大于后者)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-17
#include<stdio.h>
#include<string.h>
void main()
{
char str1[20],str2[20];
int a,i;
gets(str1);
gets(str2);
if(strcmp(str1,str2)>0)
printf("str1>str2");
else printf("str1<str2");
a = 0;
for(i=0;i<strlen(str1) && i < strlen(str2);i++)
{
if(str1[i]!=str2[i])
a=str1[i]-str2[i];
}
printf("差值=%d",a);
}
第2个回答  2011-05-17
在发现第一个不同字符后要退出循环
for(i=0;i<20;i++)
{
if(str1[i]!=str2[i])
{
a=str1[i]-str2[i];
break;
}
}
第3个回答  推荐于2018-03-14
if 里加个break

if(str1[i]!=str2[i])
{
a = str1[i]-str2[i];
break;
}追问

我是加过break,但加到if语句外边了,你可不可以给我说说为什么break不能加到if外边,我原来写的是for(i=0;i<20;i++)
{ if(str1[i]!=str2[i])
a=str1[i]-str2[i];break;}

追答

if()
xxx;
break;
其实是
if()
{
xxx;
}
break;

不加{ } 遇到 后面第一个; if就不再把后面的作为 if的了

同理 for 也是

for()
xyz;
abc;
实际上是
for()
{
xyz;
}
abc;

本回答被提问者和网友采纳
相似回答