Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505697
  • 博文数量: 77
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 689
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-12 08:40
文章分类

全部博文(77)

文章存档

2018年(1)

2016年(3)

2015年(24)

2014年(49)

我的朋友

分类: C/C++

2014-12-25 17:59:30

find

函数原型:

size_t find ( const string& str, size_t pos = 0 ) const;
size_t find ( const char* s, size_t pos, size_t n ) const;
size_t find ( const char* s, size_t pos = 0 ) const;
size_t find ( char c, size_t pos = 0 ) const;

参数说明:pos查找起始位置    n待查找字符串的前n个字符

使用样例:

string  str1("the usage of find can you use it");

string  str2("the");

上面定义出了两个字符串;

str1.find(str2);                    //  从串str1中查找str2,返回str2中首个字符在str1中的地址(下标)

  1. if (str1.find(str2)!= str1.npos)  //如果没找到,返回一个特别的标志c++中用npos表示  
  2. {  
  3. }


str1.find(str2,5);                //   从str1的第5个字符开始查找str2

str1.find("usage");            //   如果usage在str1中查找到,返回u在str1中的位置

str1.find("o");                     //   查找字符o并返回地址

str1.find("of big",2,2);      //   从str1中的第二个字符开始查找of big的前两个字符

substr
函数原型
basic_string substr( _Off = 0,size_type _Count = npos) const;
参数
_Off:所需的子字符串的起始位置。串中第一个字符的索引为 0,默认值为0.
_Count:复制的字符数目、长度

返回值:一个子字符串,从其指定的位置开始


string str("asdfgh.jkl");
str.substr(pos, length);  // length也可以用find()得到
str.substr(str.size() - n,n); // 获取str最后n个字符
str.substr(0,str.find('.')); // 获取str中‘.’字符之前的

其中pos是起始字符的序号,length是[从 pos 开始]取的字符串长度(包括pos )。
如果要取得 str 中序号 m n 之间(不包括n)的子字符串需要用
str.substr(m, n-m);

阅读(3429) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~