如何编程实现:比较两个字符串,若不相等,返回第一个不相等字符的ASCII码差值
3个回答
展开全部
#include<iostream>
using namespace std;
int Diff(char *str1, char *str2)
{
char *head1 = str1;
char *head2 = str2;
while(true)
{
if(*head1 != *head2)
return (*head1 > *head2) ? (*head1 - *head2) : (*head2 - *head1);
else
{
head1++;
head2++;
if(*head1 == '\0' && *head2 != '\0')
return *head2;
else if(*head2 == '\0' && *head1 != '\0')
return *head1;
else if(*head1 == '\0' && *head2 == '\0')
break;
}
}
return 0;
}
void main()
{
char *str1 = "abc";
char *str2 = "abcdfdgf";
cout<<Diff(str1, str2);
}
随手写的,没有测过,是个大概思路。
DurantSimpson的回答有问题,
“abc”和“abcd”打印结果是0
“abce”和“abcd”打印结果是-1
展开全部
#include<stdio.h>
#include<string.h>
main()
{
char str1[100],str2[100];
int i=0,flag=0;
printf("enter the first string\n");
scanf("%s",str1);
printf("enter the second string\n");
scanf("%s",str2);
while(str1[i]!='\0' && str2[i]!='\0')
{
if( str1[i]!= str2[i] ){
flag = 1;
break;
}else
i++;
}
if(flag == 1)
printf("%d\n",str2[i]-str1[i]);
else
printf("%d\n",0);
}
追问
请问while(str1[i]!='\0' && str2[i]!='\0')这句话可以改为while(!str1[i] && !str2[i])吗
str2[i]-str1[i]这是不是要加绝对值呢 怎么加呢
追答
不可以,应改为while(str1[i] && str2[i]);如果要加绝对值的话,要加#include并把str2[i]-str1[i]改为abs(str2[i]-str1[i])
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如何编程实现:...
--首先要选定,用什么语言来编这个程序。
--首先要选定,用什么语言来编这个程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询