gpt4 book ai didi

c++ - 从字符串中删除空格不生效

转载 作者:太空狗 更新时间:2023-10-29 20:49:48 25 4
gpt4 key购买 nike

我正在尝试删除除字母以外的所有字符和空格。但是“删除空格”部分不生效,只有我注释掉删除字符部分才会生效。

for (int i = 0; i < s.size(); i++)
{
if (!(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z'))
{
s[i] = '\0';
}

}

s.erase(remove(s.begin(), s.end(), ' '), s.end());

最佳答案

您要用 NUL 替换所有非字母字符,然后删除所有空格。由于 NUL 不是空格,因此后一步什么都不做。如果您将循环中的赋值更改为

s[i] = ' ';

您可以用空格替换它们,然后用 eraser(remove

如果你想让代码更具可读性,你可以将复杂的 if 替换为

if (!isalpha(s[i]))

或者你甚至可以用

替换整个东西
s.erase(remove_if(s.begin(), s.end(), [](char ch){ return !isalpha(ch); });

关于c++ - 从字符串中删除空格不生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57340958/

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