我试图从字符串中删除空格,以尝试使用字符串本身,但它根本无法正常工作。在调试时,我发现它在字符串str1中放入了一个奇怪的值,我不明白为什么这样做。以下是附带的代码,可能是什么问题?为什么不起作用?
string str = "Hello World";
string str1 = " ";
int increment = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == ' ') {
continue;
}
else {
str1[increment] += str[i];
increment++;
}
}
最佳答案
str1[increment]
对于任何increment > 0
都是UB,因为str1
的长度仅为1。您还将字符的值添加到每个元素,而不是附加字符串。只是改变
str1[increment] += str[i]
至str1 += str[i]
并将string str1 = " ";
更改为string str1;
关于c++ - 使用另一个字符串从字符串中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62637727/