检查string.at(i)是否是空格C ++

时间:2011-04-16 22:02:19

标签: c++ string char whitespace

我想检查一下charstring.at(i))是否是C ++中的空格。我怎么能这么容易地做到这一点?

我有这个代码示例,我想用某些东西改变_____,但不知道是什么。我试过了' ',但这没效果。

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

3 个答案:

答案 0 :(得分:14)

#include <cctype>

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

答案 1 :(得分:6)

而不是== [某事],而不是if (isspace(string.at(i))(或者您可能更喜欢使用std::isspace)。

编辑:我应该根据你正在做什么添加空格字符(或者你要用其他所有东西,取决于你),你可能想要使用算法。例如,如果您想要删除所有空格字符的字符串副本,可以使用:

std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace);

答案 2 :(得分:3)

迁移到C ++的不悔改的C程序员会半自动使用:

#include <cctype>

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

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