c++string类型

admin2024-05-15  1

概述

 1.  构造string类对象

2.  string的访问

3. string的长度 

4. c++字符串转化为C语言字符串 

5. 字符串的容量 

6. 字符串的查找 

6.1 如何判断查找成功和失败

7. 判断string是否为空

8. string的比较 

9. string的添加 

10. string的删除 

11. string字符串的替换

12. 使用assign()函数进行赋值 

13. resize()重新设置字符串长度 

 14. string类型转换为其它类型

15. to_string() 

16.substr()字符串分割

 

注意:  关于string的操作其实都是以字节为准的 (可以跳过)

我们在上面的计算字符串长度,从指定位置查找字符或者子串,删除指定位置的字符,删除指定个数的字符,以及使用replace()替换指定位置的字符,这写都是针对于字节来说的。

指不过上面的操作,都是以英文字符的形式去展示的,英文字符一个字符占用一个字节,所以上面我们都使用字符数表示了,其实不是这样的,实际那些函数操作的是字节。

如果,在例子中使用中文字符(一个字符占两个字节): 

1. 那么计算的长度就是字节数: 字符数*2

2. str1.erase(1);     // 对于中文字符会出现乱码,因为此处的1表示,删除字符串1字节之后的所有字节,中文字符一个占用两个字节,如果你将1字节后面的字节都删除了,表示中文字符的二进制就被截断了,就会出现乱码

str.erase(2);    // 这样表示删除字符串2字节之后的所有字符,对于中文字符,这样才是真正的保留下第一个字符。

3. 对于迭代器也是同理,begin()和end()都是表示一个字节。


4. str1.replace(0, 2, str2, 0, 3);    //  这个取代语句,是将str1第一个位置开始两个字节的元素替换成str2第一个位置开始三个字节的元素。
如果我们操作的是中文,那么替换的字节数必须是2的倍数,否则就会出现乱码。

等等,相关的操作其实都是对于字节数的操作。其实这些你不知道也无所谓,只是如果你去尝试操作放有中文的或者其它多字节字符的字符串的时候,可能会感到蒙。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!