一、std::string::npos
概述
-
std::string::npos
是一个静态常量,表示 size_t
类型的最大值
-
std::string::npos
用于表示字符串操作中的未找到的位置或无效位置
-
std::string::npos
属于 C++ 标准库中的 <string>
头文件
二、std::string::npos
的作用
std::string::npos
表示 size_t
类型的最大值
#include <iostream>
#include <string>using namespace std;int main() {cout << string::npos << endl;return 0;
}
# 输出结果18446744073709551615
- 在字符串查找中,例如,
find()
、rfind()
、find_first_of()
等,如果查找失败,函数会返回 std::string::npos
表示未找到目标子串或字符
函数 | 说明 |
---|
find() | 正向查找子串 |
rfind() | 反向查找子串 |
find_first_of() | 查找字符集合中的任意一个字符,返回第一个匹配的位置 |
#include <iostream>
#include <string>using namespace std;int main() {string str = "Hello, world!";size_t found = str.find("Python");if (found == string::npos) {cout << "not found" << endl;}return 0;
}
# 输出结果not found
- 在
substr()
、erase()
中,std::string::npos
表示直到字符串末尾
#include <iostream>
#include <string>using namespace std;int main() {string str = "Hello, world!";string substr = str.substr(7, string::npos);cout << substr << endl;return 0;
}
# 输出结果world!