string类应用

来源:互联网 发布:淘宝手办店三巨头 编辑:程序博客网 时间:2024/06/05 05:53
      string类提供一个可以自动增长的字符串类型,其主要的成员函数有:
一、查找系列
1.size_type find(const char*)和size_type find(const string&):这两个成员函数返回查找字符串在字符串对象中第一次出现的位置,若存在则返回子串第一个字符在字符串对象中的位置,若不存在则返回string::npos。
2.size_type rfind(const string&)和size_type rfind(const char*):这两个成员函数的行为和上面两个成员函数的行为相似,但是这两个成员函数返回的是子串在字符串对象中最后一次出现时子串第一个字符的位置。
3.size_type find_first_of(const char*)和size_type find_first_of(const string&):返回参数字符串中任意一个字符在字符串对象中第一次出现的位置。
4.size_type find_first_not_of(const char*)和size_type find_first_not_of(const string&):与上面的两个成员函数正好相反,返回字符串对象中第一个不出现在参数字符串中字符的位置。
5.size_type find_last_of(const char*)和size_type find_last_of(const string&):返回参数字符串中任意一个字符在字符串对象中最后一次出现的位置。
6.size_type find_last_not_of(const char*)和size_type find_last_not_of(const string&):与上面的两个成员函数正好相反,返回字符串对象中最后一个不出现在参数字符串中字符的位置。
       上面的所有的六组成员函数都能接受第二个参数该参数是string::size_type类型用来表示查找开始的位置。
二、重新赋值、追加和删除
1.重新赋值:可以对一个字符串类型的对象用assign成员函数重新赋值。assign成员函数一共有两种形式的重载,第一种类型是第一个参数表示用于重新赋值的字符串,第二个参数是表示开始的位置,第三个参数表示长度;第二种类型一共有三个参数,第一个参数同样是表示一个字符串,后面两个使用一对迭代器,用来表示赋值的一个范围。如
const char* str = "ABCDEF";
string str2 = "C++";
str2.assign(str,2,2); //str2=="CD"
str2.assign(str,str+2,str+4); //str2=="CD"
2.追加:可以使用append成员函数来对现有的一个字符串对象进行追加。append成员函数同样有象assign成员函数的这两种重载形式。
3.删除:可以使用eraser成员删除现有的字符串对象中的部分字符或字符串,eraser有两种形式的重载。第一种是提供两个参数第一个表示一个位置,第二个表示要删除的字符数;第二种需要一个迭代器对作为参数,他将删除这个迭代器对指向区间的所有字符。如:
str2.eraser(0,1); //str2=="++"
str2.eraser(str2.begin(),str2.end()); //str2==""
三、取子串
       可以使用substr成员函数取字符串对象中的一个子串,他的形式如下:string substr(size_type pos,size_type len);第一个参数表示子串开始的位置,第二个参数表示子串的长度。如:
string str3=str2.substr(1,2); //str3=="++"
四、比较与替换
1.比较:可以使用compare成员函数进行比较,根据compare成员函数不同的重载版本可以比较两个字符串对象或者字符串的一个子串与另一个字符串进行比较。该成员根据字典顺序返回1、0或-1
int compare(const char*)比较两个字符串
int compare(size_type pos,size_type len,const char* str):将字符串对象从pos位置开始一共len长度的子串与字符串str比较。
2.替换:使用repalce成员函数对字符串对象的一个子串进行替换,其主要形式如下:
void repalce(size_type pos,size_type len,const char* str)对从pos开始len长度的子串用str替换
void repalce(size_type pos,size_type len,int n,char ch)对从pos开始len长度的子串用n个ch替换
      compare和replace的另外几种重载形式都是用迭代器来表示子串的范围。
五、下标操作
       字符串对象的下标操作一共有两种形式:一种是at()成员函数,另一种是重载[]操作符。两者的区别在于对下标溢出的保护上。[]操作符不提供溢出保护,当下标溢出时其行为随实现而异;at(int)成员函数提供下标溢出保护,当下标溢出时,该成员函数将抛出range_out异常
原创粉丝点击