gpt4 book ai didi

c++ - 空字符常量

转载 作者:行者123 更新时间:2023-11-28 06:08:20 25 4
gpt4 key购买 nike

有没有办法绕过 Visual Studio Community 2015 上的错误 C2137?我正在使用 stringstream 删除字符,但我不想替换它们(即使有空格),我想删除它们,所以如果我想删除所有 'o''cool' 中变为 'cl' 而不是 'c l'。我在 Stroustrup 的书中看到他写了一个 if (...) ch = ''; 但是我的编译器返回一个错误,我最好的代理是仍然 Not Acceptable 空白。

这是我使用 C2137 的函数:

string rem_vow(string& s)
{
for (char& c : s)
{
switch (c)
{
case 'A': case 'a': case 'E': case 'e': case 'I':
case 'i': case 'O': case 'o': case 'U': case 'u':
c = '';
break;
default:
break;
}
}

return s;
}

编辑:

这是我在书上看到的代码:

Code Example

提前致谢

最佳答案

不,为了删除字符串中的一个字符,您必须将字符串的其余部分移动一步,您不能简单地将其替换为“空”字符。虽然您可以使用 erase 方法,但是您可能不应该在迭代字符串时这样做。

您可能应该做的是在遍历原始字符串时构建一个新字符串,例如:

string rem_vow(string const& s)
{
string res;

for (char c : s)
{
switch (c)
{
case 'A': case 'a': case 'E': case 'e': case 'I':
case 'i': case 'O': case 'o': case 'U': case 'u':
//c = ' ';
break;
default:
res.push_back(c);
break;
}
}

return res;
}

关于c++ - 空字符常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31878625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com