注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

16-4string 中查找字符或字符串 find的 的很多的用法  

2014-04-13 15:54:11|  分类: STL 基本的用法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/*find_last_of 程序员使用等N多啊*/
#include<string>
#include<iostream>
using namespace std;

int main()
{
string str1("good day string !to Ioday BEAUTIFUL! day");

//find substring day int it
size_t i=str1.find("day",0);//偏移量;

//check if the substring is fund
if(i!=-1)
{
cout<<"first instance of \"day\" was found at postion "<<i<<endl;
}
else
cout<<"not found"<<endl;

cout<<"locating all instance of substring \"day\""<<endl;
size_t j=str1.find("day",0);

while(j!=string::npos)
{
cout<<"\"day found at position"<<j<<endl;

//male find forward from the next character
size_t k=j+1;

j=str1.find("day",k);
}
cout<<endl;

cout<<"locating sll instance of character a"<<endl;
const char chartosearch='a';//不能直接写进去?
size_t l=str1.find(chartosearch,0);

while(l!=-1)//string::npos=-1
{
cout<<"'"<<chartosearch<<"'found";
cout<<"at position:"<<l<<endl;

//male find forward from the next character
size_t b=l+1;
l=str1.find(chartosearch,b);
}
return 0;
}
//2014.3.1 21"09
/*
first instance of "day" was found at postion 5
locating all instance of substring "day"
"day found at position5
"day found at position22
"day found at position37

locating sll instance of character a
'a'foundat position:6
'a'foundat position:23
'a'foundat position:38
Pr

//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;
}



string 类提供字符串处理函数,利用这些函数,程序员可以在字符串内查找字符,
提取连续字符序列(称为子串),以及在字符串中删除和添加。我们将介绍一些主要函数。

1.函数find_first_of()和 find_last_of() 执行简单的模式匹配

    例如:在字符串中查找单个字符c。
函数find_first_of() 查找在字符串中第1个出现的字符c,而函数find_last_of()查找最后
一个出现的c。匹配的位置是返回值。如果没有匹配发生,则函数返回-1.
   
          int find_first_of(char c, int start = 0):
              查找字符串中第1个出现的c,由位置start开始。
              如果有匹配,则返回匹配位置;否则,返回-1.默认情况下,start为0,函数搜索
              整个字符串。
              
          int find_last_of(char c):
              查找字符串中最后一个出现的c。有匹配,则返回匹配位置;否则返回-1.
              该搜索在字符末尾查找匹配,所以没有提供起始位置。
     

  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017