怎么输出其第一个不相等的字符的acsii编码绝对差值


题目名称:字符串比较
题目描述:按字母顺序比较两个字符串ch1和ch2的大小,若相等,则输出0;否则输出其第一个不相等的字符的acsii编码差值。 
输入描述:输入只有一组,首先在第一行上输入字符串ch1,然后在第二行输入字符串ch2,保证每个字符串长度不超过80。
输出描述:在一行上输出比较结果。若相等,则输出0;否则输出其第一个不相等的字符的acsii编码绝对差值。 

样例输入:
abcdefg
abcdefh 
样例输出:
1

*/
#include<iostream>
using namespace std;
int main(){

    return 0;
}

测试图:

img

代码如下(重点是实现思路,切勿直接复制粘贴):


#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;

int main()
{
    int len,len1,i,p;
    char ch1[80],ch2[80];
    
    gets(ch1);
    gets(ch2);
    len=strlen(ch1);
    len1=strlen(ch2);

    if(strcmp(ch1,ch2)==0)
        cout<<"0"<<endl;
        
    if(strcmp(ch1,ch2)>0)
    {
        for(i=0;ch1[i]!='\0';i++){
            if(ch1[i]!=ch2[i]){
                p=abs(ch1[i]-ch2[i]);
                cout<<p<<endl;
                break;}
        }
    }
    
    if(strcmp(ch1,ch2)<0)
    {
        for(i=0;ch2[i]!='\0';i++)
        {
            if(ch1[i]!=ch2[i]){
                p=abs(ch1[i]-ch2[i]);
                cout<<p<<endl;
                break;}
        }
    }
    
    return 0;
}

希望对题主有所帮助,可以的话,帮忙点个采纳!

像这种的输出啥:
abc
ab

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string a, b;
    cin >> a >> b;
    const char *p = a.c_str();
    const char *q = b.c_str();
    while (*p && *q && *p == *q)
    {
        p++;
        q++;
    }
    cout << abs(*p - *q);
    return 0;
}