如何编程实现:比较两个字符串,若不相等,返回第一个不相等字符的ASCII码差值

若相等字符则输出0,如“abcd”和“abhedd”返回c和h的差... 若相等字符则输出0,如“abcd” 和“abhedd” 返回c和h的差 展开
 我来答
herewjz
2015-01-28 · TA获得超过396个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:118万
展开全部
#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的回答有问题,

  1. “abc”和“abcd”打印结果是0

  2. “abce”和“abcd”打印结果是-1

DurantSimpson
推荐于2018-02-11 · 超过22用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:39.7万
展开全部
#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])
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2015-02-01 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
如何编程实现:...
--首先要选定,用什么语言来编这个程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式