求救C语言问题!编写一个程序:比较两个字符串是否相同,如果相同,则返回值是0,否则,返回前两个非相配的字符的差值(用printf直接输出两个对应差值也行).

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/25 23:53:54

求救C语言问题!编写一个程序:比较两个字符串是否相同,如果相同,则返回值是0,否则,返回前两个非相配的字符的差值(用printf直接输出两个对应差值也行).
求救C语言问题!
编写一个程序:比较两个字符串是否相同,如果相同,则返回值是0,否则,返回前两个非相配的字符的差值(用printf直接输出两个对应差值也行).

求救C语言问题!编写一个程序:比较两个字符串是否相同,如果相同,则返回值是0,否则,返回前两个非相配的字符的差值(用printf直接输出两个对应差值也行).
/*
编写一个程序:比较两个字符串是否相同,如果相同,则返回值是0,否则,
返回前两个非相配的字符的差值(用printf直接输出两个对应差值也行).
*/
#include
#define SIZE 100
int COMP(char *c1,char *c2,char *c3)
{
int i,j,k;
for(i=0,j=0,k=0; !(*(c1+i)=='\0' && *(c2+j)=='\0'); )
{
if(*(c1+i)=='\0')
{
*(c3+k)=*(c2+j);
j++;
k++;
}
if(*(c2+j)=='\0')
{
*(c3+k)=*(c1+i);
i++;
k++;
}
if(*(c1+i)!=*(c2+j)&&*(c1+i)!='\0'&&*(c2+j)!='\0')
{
*(c3+k)=*(c1+i);
*(c3+k+1)=*(c2+j);
i++;
j++;
k+=2;
}
if(*(c1+i)==*(c2+j))
{
i++; j++;
}
}
*(c3+k)='\0';
if(*(c1+i)=='\0' && *(c2+j)=='\0')
return 0;
}
void main()
{
char c1[SIZE],c2[SIZE],c3[2*SIZE];
printf("请输入两个字符串:\n");
gets(c1);
gets(c2);
COMP(c1,c2,c3);
printf("两个字符串中不相同的字符为:\n%s\n",c3);
}