必威体育Betway必威体育官网
当前位置:首页 > IT技术

C++中,string::nops 的用法以及和string.find()的区别

时间:2019-06-04 16:40:00来源:IT技术作者:seo实验室小编阅读:98次「手机版」
 

nops

复制代码

////find函数返回类型 size_type

string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");

string flag;

string::size_type position;

//find 函数 返回jk 在s 中的下标位置 

position = s.find("jk");

if (position != s.npos)  //如果没找到,返回一个特别的标志c++中用npos表示,我这里npos取值是4294967295,

{

 cout << "position is : " << position << endl;

}

else

{

 cout << "Not found the flag" + flag;

//find 函数 返回flag 中任意字符 在s 中第一次出现的下标位置

flag = "c";

position = s.find_first_of(flag);

cout << "s.find_first_of(flag) is : " << position << endl;

//从字符串s 下标5开始,查找字符串b ,返回b 在s 中的下标

position=s.find("b",5);

cout<<"s.find(b,5) is : "<<position<<endl;

//查找s 中flag 出现的所有位置。

flag="a";

position=0;

int i=1;

while((position=s.find_first_of(flag,position))!=string::npos)

{

 //position=s.find_first_of(flag,position);

 cout<<"position  "<<i<<" : "<<position<<endl;

 position++;

 i++;

}

//查找flag 中与s 第一个不匹配的位置

flag="acb12389efgxyz789";

position=flag.find_first_not_of (s);

cout<<"flag.find_first_not_of (s) :"<<position<<endl;

//反向查找,flag 在s 中最后出现的位置

flag="3";

position=s.rfind (flag);

cout<<"s.rfind (flag) :"<<position<<endl;

}

复制代码

说明:

1.  如果string sub = ”abc“;

string s = ”cdeabcigld“;

s.find(sub) , s.rfind(sub) 这两个函数,如果完全匹配,才返回匹配的索引,即:当s中含有abc三个连续的字母时,才返回当前索引。

s.find_first_of(sub),   s.find_first_not_of(sub),   s.find_last_of(sub),  s.find_last_not_of(sub)  这四个函数,查找s中含有sub中任意字母的索引。

2.  如果没有查询到,则返回string::npos,这是一个很大的数,其值不需要知道。

相关阅读

C++中std::ostringstream输出用法

C++中std::ostringstream输出用法 一、简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostrin

WritePrivateProfileString

在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时

java.lang.String源码

import java.io.ObjectStreamField; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import j

为什么StringBuilder的效率要比String高?

先看一个例子: 标题 从上面的例子可以看到,StringBuilder的运行时间只有简单字符串拼接的千分之一 ,那是什么原因造成的呢? Stri

StringBuffer的基本使用

StringBuffer的基本使用示例: package com.igeek02; /* * StringBuffer:底层维护了一个字符数组 * 线程安全的可变字符序列。

分享到:

栏目导航

推荐阅读

热门阅读