【C++ STL】——字符串

创建和初始化

头文件<string>

基本方法

string s1;
string s2("Hello");
string s3(s2);
string s4(s2,0,3);		
string s5 = "Hi";		
string s6 = s2+"Hi";
  1. s4 第一个参数是string类型,第二个和第三个分别表示偏移量和计数量,即从第0个字符开始连续读3个字符
  2. s5单一赋值,可直接把char型数组赋值给s5
  3. 类似s6这样可以,但是“Hi”+s2便无法通过,等号右边第一项必须是string类型,不能是char型

迭代器创建方法

string s1 = "Hello";
string s2(s1.begin(),s1.end());
string s3(s1.begin()+1,s1.begin()+3);		//el

字符串操作

插入操作

	string s = "do";
	string s1 = s.insert(0, "How ");
	string s2 = s.append(" you ");
	string s3 = s + "do?";
  • s1 How do
  • s2 How do you
  • s3 How do you do

替换操作

	string s = "What's your name?";
	s.replace(0, 2, "tt");
  • s ttat’s your name?
  • replace函数的第一个参数是删除字符串的起始位置,第二个参数是删除字符的个数,第三个是替换字符串的值

字符串查询

  • string::npos 是string类中的一个成员变量,查询字符串时没有符合条件的结果值则返回该值
  • find函数:在一个字符串中查找指定字符或字符串,找到则返回首次匹配的开始位置,如果没找到返回string::npos。参数有两个,一个是待查询的字符串,一个是查询起始位置。
  • find_first_of函数:在一个字符串中查找返回值是,第一个与指定字符串中任何字符匹配的字符位置;没找到返回npos。一般有两个参数,一个是待查询的字符串,一个是查询的起始位置,默认是0;
  • find_last_of函数:在一个字符串中进行查找,返回最后一个与指定字符创中任何字符匹配的字符位置;其他与find_first_of函数相同;
  • find_first_not_of函数:在一个字符创中进行查找,返回第一个与指定字符串中任何字符都不匹配的元素位置;如果没有找到匹配内容返回string::npos;两个参数,一个是待查询的字符串,一个是查询的起始位置,默认为0;
  • find_last_not_of函数:在一个字符创中进行查找,返回下标值最大的与指定字符串中任何字符都不匹配的元素位置;如果没有找到匹配内容返回string::npos;两个参数,一个是待查询的字符串,一个是查询的起始位置,默认为0;
  • rfind函数:对一个串从尾至头查找指定的字符或字符串,如果找到,就返回首次匹配的开始位置,否则返回string::npos。一般有两个参数,一个是待查询的字符串,一个是查询的起始位置。默认起始位置是串尾

从字符串中删除字符

在字符串中删除字符主要用erase函数,有两个迭代器输入参数,之间表示的字符将被删除掉。

string s = "How are you?";
s.erase(s.begin(),s.begin()+4);

最后s为 “are you?”

字符串比较

使用非成员的重载运算符函数即可

string s1 = "this";
string s2 = "that";

根据每一个位置字符的ASCII码大小进行比较,s1>s2

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值