所以我试图将我从一个字符串中获得的字符插入另一个字符串。
在这里我我的行动:
1.我想使用简单:

someString.insert(somePosition, myChar);

2.我收到一个错误,因为插入需要(在我的情况下)char *或string
3.我正在通过stringstream将char转换为char *:
stringstream conversion;
char* myCharInsert;
conversion << myChar //That is actually someAnotherString.at(someOtherPosition) if that matters;
conversion >> myCharInsert;
someString.insert(somePosition, myCharInsert);

4.一切似乎都已成功编译,但是程序使gets崩溃
conversion >> myCharInsert;

线。

5.我正在尝试用字符串替换char *:
stringstream conversion;
char* myCharInsert;
conversion << myChar //That is actually someAnotherString.at(someOtherPosition) if that matters;
conversion >> myCharInsert;
someString.insert(somePosition, myCharInsert);

一切似乎都还可以,但是当someAnotherString.at(someOtherPosition)变成空格时,程序崩溃。

那么我该如何正确地做到这一点呢?

最佳答案

std::string::insert 有许多重载。插入单个字符的重载实际上具有三个参数:

string& insert(size_type pos, size_type n, char c);

第二个参数n是将c插入字符串中位置pos的次数(即重复字符的次数。如果只想插入一个字符实例,只需将其传递一个,例如,
someString.insert(somePosition, 1, myChar);

10-05 23:06
查看更多