C++标准模板库——string


  在C语言中,一般使用char str[]数组来存放字符串,但是为了更方便简单地操作字符串,C++引入了STL中的string类型,对字符串常用的需求功能进行了封装。
  使用string,需要添加头文件 #include<string>,还要加上 using namespace std;

string的定义

  与基本数据类型相同:

	string str;

  如果是进行初始化:

	string str = "abcd";

string中内容的访问

通过下标访问

  一般来说,可以直接像字符数组那样去访问string:

for(int i =0;i<str.length();i++){
	printf("%c",str[i]);
}

  如果要读入和输出整个字符串,只能使用cin和cout

string str;
cin>>str;
cout<<str;

  string类型str通过使用c_str()变为字符数组,之后可以使用printf("%s")输出。

通过迭代器访问

  string的迭代器定义:

	string::iterator it;

  这样可以通过迭代器it的*it来访问string中的每一位。string和vector一样可以使用迭代器+整数的形式访问

string的常见函数

  1. 操作符+=
      这是string的加法,可以将两个string直接拼接起来
      str1 += str2;
  2. 比较操作符
      两个string类型可以直接使用==、!=、<、>、<=、>=比较大小,比较规则是字典序
  3. length() / size()
      返回string的长度,即存放的字符数。
  4. insert()
    ①insert(pos,string),在pos位置插入string字符串。
	string str = "abcxyz",str2 ="opq";
	str.insert(3,str2);//abcopqxyz

  ②insert(it,it2,it3),it为原字符串的预插入位置,it2和it3为待插字符串的收尾迭代器,用来表示串[it2,it3)将被插入在it的位置上。

string str = "abcxyz",str2 = "opq";
str.insert(str.begin()+3,str2.begin(),str2.end());
  1. erase()
      erase()有两个用法:①删除单个元素;②删除一个区间内的所有元素,同vector
    增加了一个新的区间删除用法:str.erase(pos,length); pos为删除的起始位置,length为删除的字符长度。
  2. clear()
      用以清空string中的数据。
  3. substr()
      substr(pos,len),返回从pos号位开始、长度为len的字串。
  4. string::npos
      string::npos为一个常数,其本身的值为-1。string::npos用以作为find函数失配时的返回值。
  5. find()
      str.find(str2),当str2是str的子串时,返回其在str中第一次出现的位置;如果不是子串,返回string::npos
      str.find(str2,pos),从str的pos号位开始匹配str2,返回值同上。
  6. replace()
      str.replace(pos,len,str2)把str从pos号位开始,长度为len的子串替换为str2.
      str.replace(it1,it2,str2)把str的迭代器[it1,it2)范围的子串替换为str2。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值