ASCII值之间的差异

时间:2017-09-28 19:07:50

标签: c++

#include<bits/stdc++.h>
using namespace std;
int length(string a)
{
    int count=0;
    for(int i=0;a[i]!='\0';i++)
    {
        count++;
    }
    return count;
}
int  strdiff(string a)
{
    n=length(a);
    for(int i=0;i<n-1;i++)
    {
        cout<<a[i]<<a[i+1]-a[i];
    }
    cout<<a[n-1]; 
}

int main() {
    string a;
    cin>>a;
    cout<<strdiff(a);
    return 0;
}

为什么我在输出结束时获得垃圾值?如何从输出中删除垃圾值? 请提出一些建议。

1 个答案:

答案 0 :(得分:4)

int  strdiff(string a)
{
    n=length(a);
    for(int i=0;i<n-1;i++)
    {
        cout<<a[i]<<a[i+1]-a[i];
    }
    cout<<a[n-1]; 
}

此函数不包含return语句。这是C ++中未定义的行为,通常会导致堆栈中的垃圾返回到调用函数。