我刚开始使用C ++,所以请谅解。
我正在编写一个程序,其中将下一个辅音添加到每个辅音上。
例如,如果输入为joythethen,则结果为jkoyz。
因为k在j后面,所以它被插入j后面,所以o是元音,所以在z后面不插入任何东西,在z到y之后插入任何东西,因为z在字母表中位于y之后。
#include <iostream>
#include <string>
#include <typeinfo>
using namespace std;
int main ()
{
string str = "joy";
string constant = "bcdfghjklmnpqrstvwxyzz";
for(int i = 0; i < str.length(); i++){
if (constant.find(str[i]) != string::npos) {
int index = constant.find(str[i]);
char closestConstant = constant[index + 1];
char *closestConstantPointer = &closestConstant;
str.insert(0, closestConstantPointer);
}
}
}
问题出在str.insert(0, closestConstant);
行中。有指导吗?
答案 0 :(得分:2)
添加辅音后,仅将i
递增一次,光标最终移到新的辅音上,因此您总是要添加新的辅音。像这样:
joy
jkoy
jkloy
jklmoy
等等。
解决方案是每添加一个辅音就增加i
。将增量保留在for
循环内;您只需要在i
命令之后立即再次增加str.insert(...)
。