gpt4 book ai didi

c++ - 在字符串 C++ 上添加下一个字符

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

我确实得到了字符串的下一个字符 (hello-->ifmmp) 但在 hello* 的情况下,我希望仍然能够将 * 显示为异常,它可以是也是一个数字,但我想这并不重要,因为它不在字母表中。

这是我的代码,else if应该在哪里?还有另一种选择,但我发现它没有优化,它是在第一个 for 循环中添加这个:

string other="123456789!@#$%^&*()";

for(int z=0;z<other.length();z++)
{
if(str[i]==other[z])
str2+=other[z];
}

然后这是主要代码;

int main()
{

string str = "hello*";
string str2="";
string alphabet = "abcdefghijklmnopqrstuvwxyz";
for(int i=0;i<str.length();i++)
{
for(int j=0;j<alphabet.length();j++)
{
if(str[i]==alphabet[j])
{
str2+=alphabet[j+1];
}

}

}

cout<<str2<<endl;

return 0;
}

最佳答案

我喜欢函数。他们解决了很多问题。例如,如果您使用已有的代码,将其粘贴到一个函数中,然后稍微调整一下

char findreplacement(char ch, const std::string & alphabet)
{
for (int j = 0; j < alphabet.length(); j++)
{
if (ch == alphabet[j])
{
return alphabet[(j+1) % alphabet.length()];
// return the replacement character
// using modulo, %, to handle wrap around z->a
}
}
return ch; // found no replacement. Return original character.
}

可以调用函数

for (int i = 0; i < str.length(); i++)
{
str2 += findreplacement(str[i], alphabet);
}

构建str2。考虑在此处使用基于范围的 for:

for (char ch: str)
{
str2 += findreplacement(ch, alphabet);
}

它更干净,也更难搞砸。

关于c++ - 在字符串 C++ 上添加下一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54800739/

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