17.C++-string字符串类(详解)

C++字符串string类

在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低.

所以在C++标准库里,通过类string从新自定义了字符串。

头文件: #include <string>

  • string直接支持字符串连接
  • string直接支持字符串的大小比较
  • string直接支持子串查找和提取
  • string直接支持字符串的插入和替换
  • string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符。

字符串数组和string对象尽量不要混合使用,会带来意想不到的问题

例如,通过字符串数组赋值给string对象:

打印运行:

这是因为,使用for循环拷贝,仅仅改变了str的串内容,并没有改变str的length长度.

 

string类常用的成员函数有:

 

 

  

 

const char* c_str();   

返回一个常量C字符串, 内容与本string串相同. 

注意:当本string的内容改变,或被析构后,返回的字符串也不会被改变,因为返回的字符串是从新通过new char[]出来.

参考下面代码,可以发现返回的C字符串地址和string里的字符串地址完全不同:

 

反转相关(位于头文件<algorithm>)

拷贝相关:

 

"abcdefg" 循环右移3位等到: "efgabcd"

代码如下:

 

代码如下:

  

字符串与数字的转换

以前,在C里,当我们想获取字符串里的数字时,一般都是通过strtoul()或者sscanf()获取

在C++标准库里,也提供字符串与数字的转换.位于<sstream>头文件.

同时需要用到两个类:

将string 字符串 ->数字,使用方法如下

也可以通过临时对象转换,这样写:

或者将第3行,写为宏:

  

将数字->string 字符串,使用方法如下

也可以通过宏,这样写:

  

 


文章来源:https://www.cnblogs.com/lifexy/p/8642163.html

posted @ 2018-09-19 12:22  熊继明  阅读(181)  评论(0编辑  收藏  举报
友情链接:回力 | 中老年高档女装 | 雅思培训 | 托福培训 | sat培训