为什么这段代码会报很奇怪的错????
2023-07-16 15:28:17
发布于:广东
报错内容如下:
*** stack smashing detected ***: <unknown> terminated
代码如下:
#include <iostream>
#include <string>
using namespace std;
bool aeiou(char c){
if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u')return 1;
else return 0;
}
int main(){
string s1,s2;
cin>>s1;
int len=s1.size();
int p=0;
for(int i=0;i<len;i++){
if(s1[i]>='A'&&s1[i]<='Z')s1[i]+=32;
if(aeiou(s1[i])==0){s2[p++]='.';s2[p++]=s1[i];}
}
for(int i=0;i<p;i++){
cout<<s2[i];
}
}
全部评论 7
https://www.acgo.cn/discuss/2629
2023-07-16 来自 广东
0ok了,你看看
2023-07-16 来自 广东
0ok
2023-07-16 来自 广东
0
我发下我代码到论坛里,等会粘贴下链接
2023-07-16 来自 广东
0栈溢出导致的,估计是因为在字符串 s2 中没有足够的空间来存储转换后的结果。你这定义了字符串 s2,但没分配够空间啊
2023-07-16 来自 广东
0出结果告诉你
代价吗。。。就是给我一个关注嘿嘿2023-07-16 来自 广东
0666
2023-07-16 来自 广东
0
让我来看看
2023-07-16 来自 广东
0for(int i=0;i<len;i++){
if(s1[i]>='A'&&s1[i]<='Z')s1[i]+=32;
if(aeiou(s1[i])==0){s2+='.';s2+=s1[i];}
}
cout<<s2;2023-07-16 来自 广东
0怎么修改才不会报错啊
2023-07-16 来自 广东
0是哪道题目啊
2023-07-16 来自 广东
0【X01】day08-上午-综合练习四
的T12023-07-16 来自 广东
0
有人吗?
2023-07-16 来自 广东
0
有帮助,赞一个