gpt4 book ai didi

c++ - 从字符串数据类型的字符串中分离元音并将其存储在新字符串中

转载 作者:行者123 更新时间:2023-11-30 05:12:30 24 4
gpt4 key购买 nike

#include<iostream>
using namespace std;
int main()
{
int i=0,j=0;
string a,v;
cin>>a;
while(a[i]!='\0')
{
if(a[i]=='a' || a[i]=='e' || a[i]=='i' || a[i]=='o' || a[i]=='u' )
{
v[j]=a[i];
j++;
}
i++;
}
cout<<v;
return 0;
}

当我尝试打印 v 时,什么也没有打印出来,我不知道为什么!但是,当我尝试使用 while 循环遍历每个字符来打印 v 时,将打印正确的输出。我想知道为什么??

最佳答案

使用 .at() 而不是 [],它会进行边界检查,并且可能会为您检测到此错误。

您的问题是您有一个未确定空间的字符串“v”,并且您要附加到“v”的任意索引。

解决方案是将附加到 v 的代码替换为:

    v += a.at(i);

有了这个,您还以第二个迭代器 j 的形式消除了一些复杂性。

您可以在 v 中保留空间,以便 [index] 操作起作用。所以一开始你可以这样做:

    cin>>a;
v.reserve(a.size())

关于c++ - 从字符串数据类型的字符串中分离元音并将其存储在新字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44495463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com