gpt4 book ai didi

c++ - 如何在 C++ 字符串中找到第一个字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:42 24 4
gpt4 key购买 nike

我有一个以很多空格开头的字符串。如果我想找出第一个不是空格的字符的位置,我该怎么做?

最佳答案

参见 std::string::find_first_not_of .

要找到第一个非空格字符的位置(索引):

str.find_first_not_of(' ');

找到第一个非空白字符的位置(索引):

str.find_first_not_of(" \t\r\n");

如果 str 为空或完全由空格组成,则返回 str.npos

您可以使用 find_first_not_of 删除有问题的前导空格:

str.erase(0, str.find_first_not_of(" \t\r\n"));

如果您不想硬编码哪些字符算作空白(例如使用语言环境),您仍然可以使用isspacefind_if 或多或少采用 sbi 最初建议的方式,但要注意否定 isspace,例如:

string::iterator it_first_nonspace = find_if(str.begin(), str.end(), not1(isspace));
// e.g. number of blank characters to skip
size_t chars_to_skip = it_first_nonspace - str.begin();
// e.g. trim leading blanks
str.erase(str.begin(), it_first_nonspace);

关于c++ - 如何在 C++ 字符串中找到第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346737/

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