所以我试图将我从一个字符串中获得的字符插入另一个字符串。
在这里我我的行动:
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);