分类: 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中的地址(下标)
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);