博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【c++编程思想】字符串
阅读量:5132 次
发布时间:2019-06-13

本文共 1514 字,大约阅读时间需要 5 分钟。

c++ string


string隐藏了他所包含的字符序列的物理表示。
也包含了关于其数据容量及存储地址的内务处理信息。
 
c++标准没有定义string内存布局的确切实现。只是规定无论是否采取引用计数,其语言必须保持一致。
c语言中每个char数组都占据各自独立的存储区域,但是在c++中独立的几个string对象可以占据也可以不占据各自特定的物理存储区,但是如果采用引用计数避免保存同一个对象的副本,那么各个对象必须看起来像独立拥有各自的存储区一样。
 
 
  • 字符串操作
replace改写字符
有很多重载的版本, 最简单的用了三个参数,第一个用于指示字符串的什么位置开始改写, 第二个用于指示从源字符串中删除多少个字符,另外一个是用于替换的字符串(长度可以和被删除的字符串的长度不符)
 
#include
#include
using namespace std;int main(){ string s1("this is my home, this is my home"); string s2("this"); int i; i = s1.find(s2); while(i!=string::npos) { s1.replace(i, s2.length(), "those"); i = s1.find(s2); } cout<
<

 

 
 
find查找字符串
可以将开始查找的位置作为第二个参数
如果查找不到, 则会返回string::npos,静态成员, 值为size_t所能表示的最大值。
 
 
 
  • 字符串比较
为了高效的运行,对于字符串对象、引用文字和指向c语言风格的字符串指针等的直接比较,string类不创建临时string对象,而是采用重载运算符进行。
#include
using namespace std;int main(){ string s1("this"); string s2("this"); if(s1 == s2.c_str()) cout<<"yes"<

 

 
 
c_str()返回一个const char*他指向一个c风格的具有空结束符的字符串,内容和string对象中的内容等价。
将其返回值作为非const参数应用于任何一个函数都是错误的。
 
compare成员函数可以提供更加精确的比较:
两个完整的字符串
一个字符串的部分和另一个字符串的全部
两个字符串的子集
 
 
取字符串中的个别字符
[]操作符用下标语法,如果访问越界,不会抛出异常
at()会抛出一个out_of_range异常
 
 
 
  • string的本质
string不是一个类,basic_string<>模板是一种更通用的工具,而string类型只是其更专门化的版本。
声明:
typedef basic_string<char> string;
 
 
basic_string模板
template<class charT, class traits = char_traits<charT>,
class allocator = allocator<charT>> class basic_string;
 
 

转载于:https://www.cnblogs.com/w0w0/archive/2012/09/12/2681603.html

你可能感兴趣的文章
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>