检查C++中字符是否为空格:检查string.at(i)是否为空格

11

我想在C++中检查一个char (string.at(i))是否为空格。如何轻松实现?

我有这个代码示例,我想更改_____为其他内容,但不知道应该填什么。我已经尝试过' ',但没有成功。

for(int i = 0; i < string.length(); i++)
{
    if(string.at(i) == _________)
    {
        //do something
    }
}

string[i] == ' ' 应该可以工作,如果你想要非常简单的检查。 - Mateen Ulhaq
2
这里没有必要使用 at,因为您知道索引是有效的。 - GManNickG
@muntoo:空格不是唯一的空白字符。 - Jonathan Leffler
没错。还有\t\r\n,以及其他一些控制字符。 - dan04
3个回答

14
#include <cctype>

if (isspace(string.at(i)))

6
代替使用==[something],您需要使用if (isspace(string.at(i))(或者您可能更喜欢使用std::isspace)。
编辑:我应该补充说明,根据您对空格字符的操作方式(或者根据其他一切,具体情况而定),您可能需要使用算法。例如,如果您想要创建一个将所有空格字符删除的字符串副本,您可以使用以下代码:
std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace);

3

不后悔的C程序员转向C++时,会半自动地使用:

#include <cctype>

if (std::isspace(string.at(i)))
    ...

即使对于C++程序员来说,这也很可能是正确的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接