string:

来源:互联网 发布:《网络黑白》 编辑:程序博客网 时间:2024/05/17 17:18

string::npos 的一些说明

一、定义 

std:: string ::npos的定义:

static const size_t npos = -1;

表示 size_t 的最大值( Maximum value for size_t ) ,如果对 -1 表示size_t的最大值有疑问可以采用如下代码验证:

#include <iostream>#include <limits>#include <string>using namespace std;int main(){    size_t npos = -1;    cout << "npos: " << npos << endl;    cout << "size_t max: " << numeric_limits<size_t>::max() << endl;}

在我的PC上执行结果为:

                 npos:           4294967295

                 size_t max:  4294967295

可见他们是相等的,也就是说npos表示size_t的最大值

二、使用

2.1 如果作为一个 返回值 (return value) 表示没有找到匹配项 ,例如:

#include <iostream>#include <limits>#include <string>using namespace std;int main(){  string filename = "test";  cout << "filename : " << filename << endl;  size_t idx = filename.find('.');   //作为return value,表示没有匹配项  if(idx == string::npos)  {    cout << "filename does not contain any period!" << endl;  }}
2.2 但是string::npos作为string的成员函数的一个 长度参数 时,表示“ 直到字符串结束(until the end of the string)”。例如:
tmpname.replace(idx+1, string::npos, suffix);

这里的string::npos就是一个长度参数,表示直到字符串的结束,配合idx+1表示,string的剩余部分。 

#include <iostream>#include <limits>#include <string>using namespace std;int main(){  string filename = "test.cpp";  cout << "filename : " << filename << endl;  size_t idx = filename.find('.');   //as a return value  if(idx == string::npos)  {    cout << "filename does not contain any period!" << endl;  }  else  {    string tmpname = filename;    tmpname.replace(idx + 1, string::npos, "xxx"); //string::npos作为长度参数,表示直到字符串结束    cout << "repalce: " << tmpname << endl;  }}

执行结果为:

filename:test.cpp

replace: test.xxx

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 驾考体检色盲怎么办 杭州居住告知单怎么办 郑州有房怎么办暂住证 郑州买车怎么办暂住证 在青岛办暂住证怎么办 异地买车暂住证怎么办 广州暂住证过期了怎么办 杭州暂住证过期了怎么办 居住卡到期了怎么办 居住卡过期了怎么办 在合肥办暂住证怎么办 在西安办暂住证怎么办 杭州没办暂住证怎么办 暂住证超过2月怎么办 机动车大本丢了怎么办 北京老年卡2018怎么办 暂住卡过期了怎么办 我暂住证过期了怎么办 我没租房怎么办暂住证 孩子异地入学籍怎么办 孩子入不了学籍怎么办 常州没有暂住证怎么办牌照 东莞居住证过期了怎么办 杭州告知单过期怎么办 杭州暂住证到期了怎么办 在杭州租房怎么办暂住证 杭州暂住证丢了怎么办 在宾馆住怎么办暂住证 上海学车暂住证怎么办 环保车贴丢了怎么办 交通事故交警不处理怎么办 哈尔滨冰雪大世界夏天怎么办 下围棋没天赋怎么办 围棋计算力不好怎么办? 围棋3段后怎么办 遇到围棋中的断怎么办 手机出现等待中怎么办 小孩和同学打架怎么办 听到同学议论我怎么办 写小说对话枯燥怎么办 打架对面人多怎么办