c++中std--string,stl string实现

  c++中std::string,stl string实现

  一、字符串对象的定义和初始化

  1 .字符串标准库支持四种构造函数。

  字符串S1;//默认构造函数,s1是空字符串

  字符串S1(S2);//将s2初始化为s1的副本

  字符串s3(“值”);//将s3初始化为字符串的文本副本

  字符串s4(n, c );//将s4初始化为字符“C”的N个副本

  其他施工方法:

  String( str,n) //初始化为str指向的数组的前n个元素的副本

  String( str pos,n) //从str pos开始复制n个元素

  String( s2,pos) //从下标pos开始初始化为s2(string对象)的字符串的副本

  字符串(s2,位置,长度)

  2.读写2 .字符串对象

  A.读取并忽略开头的所有空白字符(如空格、换行符、制表符)

  读取字符,直到再次遇到空白字符,终止读取;(读单词)

  ?

  一个

  2

  三

  四

  五

  六

  七

  八

  int main()

  {

  字符串S1;

  而(cin s1)

  cout s1 endl

  返回0;

  }

  B.使用getline()读取整行文本。getline()不会忽略行首的换行符。只要读到换行符,果断停读。

  行不包含换行符。如果需要逐行输出,必须自己添加换行符。(换行符不存储在getline()读取的字符串对象中)

  ?

  一个

  2

  三

  四

  五

  六

  七

  int main()

  {

  弦线;

  while( getline(cin,line))

  cout line endl

  返回0;

  }

  二。字符串对象的操作

  1.简单操作列表

  S.empty() //如果s为空字符串,则返回true,否则返回false

  S.size() //返回s中的字符数

  S[n] //返回S中位置为N的字符,位置从0开始计数。

  S1//将S1和s2链接成一个新的字符串,并返回新生成的字符串。

  S1=s2 //用s2的副本替换S1的内容

  V1==v2 //比较V1和v2的内容,返回true和false。

  ,=,=和=

  2.常用键操作

  A.插入

  S.insert(pos,s2) //在下标pos之前插入s2的副本

  S.insert(pos,s2,pos2,len) //从s2中pos2的下标开始,在下标pos之前插入长度为len的字符串的副本。

  B.完全取代s。

  S.assign(s2) //用s2的副本替换S

  S.assign(s2,pos2,len) //用s2中pos2的len长度字符串替换S。

  C.删除

  S.erase(pos,len) //从下标pos中删除len字符。

  D.返回子字符串(返回字符串的对象)

  S.substr(pos,n) //返回从下标pos开始的长度为len的子字符串

  S.substr(pos) //从s[pos]到结尾

  e .追加和替换

  s.append(字符串);//在s后面添加字符串

  s.replace(pos,len,str);//replace s. replace (1,5,str)=s. erase (1,5) s .在s的pos下标开头用str插入(1,str)

  F.string类型的查找操作

  类型查找操作都返回string:size_type类型的值,并以如下形式查找匹配发生的位置;或者返回一个名为string:npos的特殊值,表示没有匹配。

  S.find(str) //查找子字符串str

  S.find(str,pos) //从下标位置开始搜索

  S.rfind(str) //向后看,从后往前看。

  ?

  一个

  2

  三

  四

  字符串s( asdfasdfwqe );

  string:size _ type pos 1=s . find( s );//pos1的值为1

  pos 1=s . rfind( s );pos1的值是5

  pos 1=s . find( w );pos1的值变成npos

  3.预防措施

  B.使用string:size_type type接收s.size()的返回值(无符号),这是为了保证库类型的机器独立性。不要将size()的返回值赋给int;

  c、关系运算符的比较时空字符少于任意字符;

  D.字符串对象和字符串文字之间的链接:每个运算符的左右操作数中至少有一个必须是字符串类型。

  E.从字符串对象获取字符

  下面的string对象表从0开始,到string[s.size()-1]结束;

  ?

  一个

  2

  三

  四

  五

  string str( some string );

  for(string:size _ type IX=0;ix!=str . size();九)

  {

  cout str[IX]endl;

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: