gpt4 book ai didi

c++ - 如何使用 C++ 字符串将大写辅音替换为相应的小写辅音?

转载 作者:行者123 更新时间:2023-12-02 10:07:58 24 4
gpt4 key购买 nike

我正在解决一个小问题,但遇到了运行时错误,我不知道该错误的根源在哪里。我正在接受一个字符串 word并通过构建另一个字符串 new_word 将其大写辅音转换为相应的小写辅音.错误出现在 else if陈述。

错误:C++ 异常:内存位置 0x006FF330 处的 std::out_of_range。

请帮忙!

int main()
{
string word, new_word;
string::iterator i;
cin >> word;
for (i = word.begin(); i < word.end(); i++)
{
if (*i != 'A' && *i != 'a' && *i != 'O' && *i != 'o' && *i != 'Y' && *i != 'y' && *i != 'E' && *i != 'e' && *i != 'U' && *i != 'u' && *i != 'I' && *i != 'i')
{

if (*i > 'a' && *i <= 'z')
{
new_word.push_back('.');
new_word.push_back(*i);
}
else if (*i > 'A' && *i <= 'Z')
{
new_word.push_back(word.at(*i)+32);
}

}
}
cout << new_word;

return 0;
}

最佳答案

看来你的意思

new_word.push_back( *i +32);

代替
new_word.push_back(word.at(*i)+32);

请注意,您可以使用标准 C 函数 tolower,而不是使用像 32 这样的魔数(Magic Number)。在标题中声明 <cctype> .例如
#include <cctype>
//...
new_word.push_back( std::tolower( ( unsigned char )*i ) );

关于c++ - 如何使用 C++ 字符串将大写辅音替换为相应的小写辅音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235033/

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