gpt4 book ai didi

c++ - 当前面有元音时,代码不会将大写字母转换为小写字母

转载 作者:行者123 更新时间:2023-11-30 03:45:13 25 4
gpt4 key购买 nike

Codeforces Problem-

当我输入前面带有元音的大写字母时,它不会将大写字母转换为小写字母e-g-输入-aBAAcAba输出-.B.c.b

int main() 
{
int i;
locale loc;
string a;
cin>>a;
for(i=0;i<a.size();i++)
{
if(isupper(a[i]))
a[i]=tolower(a[i]);
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
{
a.erase(a.begin()+i);
}
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
i--;
}
for(i=0;i<a.size();i++)
cout<<'.'<<a[i];
return 0;
}

最佳答案

 if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
i--;

这不起作用,因为您已经从 a 中删除了元音,所以递减不会发生,您会跳过下一个字符。

你可能想做

if (condition)
a.erase(...);
else
++i;

并从 for 语句中删除增量。

关于c++ - 当前面有元音时,代码不会将大写字母转换为小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974822/

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