C++ - 标准库之 <string> npos(npos 概述、npos 的作用)

一、std::string::npos 概述

  1. std::string::npos 是一个静态常量,表示 size_t 类型的最大值

  2. std::string::npos 用于表示字符串操作中的未找到的位置或无效位置

  3. std::string::npos 属于 C++ 标准库中的 <string> 头文件


二、std::string::npos 的作用

  1. std::string::npos 表示 size_t 类型的最大值
c++ 复制代码
#include <iostream>
#include <string>

using namespace std;

int main() {

	cout << string::npos << endl;

	return 0;
}
复制代码
# 输出结果

18446744073709551615
  1. 在字符串查找中,例如,find()rfind()find_first_of() 等,如果查找失败,函数会返回 std::string::npos 表示未找到目标子串或字符
函数 说明
find() 正向查找子串
rfind() 反向查找子串
find_first_of() 查找字符集合中的任意一个字符,返回第一个匹配的位置
c++ 复制代码
#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
  1. substr()erase() 中,std::string::npos 表示直到字符串末尾
c++ 复制代码
#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!
相关推荐
七夜zippoe9 分钟前
缓存三大劫攻防战:穿透、击穿、雪崩的Java实战防御体系(三)
java·开发语言·缓存
Anthony_23120 分钟前
Ansible的 Playbook 模式详解
linux·运维·服务器·ansible
郝学胜-神的一滴20 分钟前
Linux命令行的核心理念与实用指南
linux·运维·服务器·开发语言·程序人生
qq_4335545425 分钟前
C++ Dijkstra堆优化算法
开发语言·c++·算法
陈随易29 分钟前
适合中国宝宝的AI编程神器,文心快码
前端·后端·node.js
毕设源码-朱学姐34 分钟前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
阑梦清川40 分钟前
AI编程实战记录贴2/100,关于Github提交代码失败的思考
后端
boonya42 分钟前
Java内存模型与线程私有共享区域与直接内存的理解
java·开发语言·内存模型
qq_1728055943 分钟前
Go 语言 PDF 生成库综合比较与实践指南
开发语言·golang·pdf
yyy00020043 分钟前
SSH登录管理
运维·服务器·ssh