#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;
}
为什么我在输出结束时获得垃圾值?如何从输出中删除垃圾值? 请提出一些建议。
答案 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 ++中未定义的行为,通常会导致堆栈中的垃圾返回到调用函数。