【发布时间】:2023-04-05 23:43:01
【问题描述】:
我刚开始接触 C++,请原谅我的误解。
我正在制作一个程序,其中下一个辅音被添加到每个辅音上。
例如,如果输入为joy,则结果为jkoyz。
因为 k 在 j 之后,所以它被插入到 j 之后,o 是元音,所以在 o 之后没有插入任何东西,而 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); 行。有什么指导吗?
【问题讨论】:
-
你已经问过了。
-
@NeilButterworth 我已经修复了参数,因为插入函数接受索引和字符指针作为参数。问题是不同的。 en.cppreference.com/w/cpp/string/basic_string/insert (2)
-
停止使用
char和char*并使用 std::string 做所有事情。 -
您正在插入一个辅音,这会增加
str的长度。当你再次循环时,你是否检查了新插入的辅音,导致添加辅音的循环永无止境? -
那行有什么问题?您观察到哪些不良行为?
标签: c++ pointers error-handling