C ++在子字符串中查找空格

时间:2017-02-19 20:27:01

标签: c++ string substr

我想知道如何在C ++中的子字符串中找到空或空格。例如:

string str = "( )"; // or str = "()"

在这里,我想确保括号之间总有一些东西。函数isspace()只需要一个字符,所以我必须在循环中搜索。有没有更好的方法来做到这一点?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用std::string::find()查找()字符,然后使用std::string::find_first_not_of()检查这些索引之间的任何非空白字符。

string str = "( )"; // or str = "()"
string::size_type idx1 = str.find("(");
if (idx1 != string::npos) {
    ++idx1;
    string::size_type idx2 = str.find(")", idx1);
    if (idx2 != string::npos) {
        string tmp = str.substr(idx, idx2-idx1);
        string::size_type idx3 = tmp.find_first_not_of(" \t\r\n");
        if (idx3 != string::npos) {
            ...
        }
    }
}