没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
C++中常见字符串类型的介绍,以及互相转换的方法
1 C++常见字符串类型介绍
中常会看到如 、、、、、 这样的字符
串类型,也有 、、、、 这样的 类,纷
繁复杂难以理解,它们之间的互相转换也如一个个谜团一般。
下面就一起来剥茧抽丝,解开这些谜团。
1.1 基本字符串类型
1.1.1 字符指针
这是大家最常见的类型了,它指向一个字符串的首地址。
根据 的约定,它也能用来表示整个字符串,串的结尾符为(内存中数
值为 )。
字符串内容
1.1.2 字符数组 !"
字符数组变量既包含了字符串的首地址信息,在某些场景下可等同于字符指针,
所以它能这样:
#!"字符串内容
# 获取字符数组首地址
同时它又包含了整个字符数组的长度信息,所以字符数组也能这样:
#$#$#$%&'#( 获取字符串长度
1.1.3 %
若一个字符串内容不希望被随意修改,我们应当为其加上 % 属性,特别是
在传入参数时。
1.1.4 )%$( 类型)
对于 )%$(双字节字符集)字符串,在 % 中使用 来表示。
在 早 期 的 *+,+% ( -. 以 前 ) 中 , 实 际 上 是 +$% 的
/$$&。在后期版本中已经称为一种独立的内置类型。
1.1.5 0、0、0
0 实际就是 ,0 就是 。
而 0 则使用了宏定义技术来检测项目的字符集配置,根据这个配置来自
动适应——当项目是多字节(或 12,下同)时,它就是 ;项目是宽字节
()%$,下同)时,它就是 。
3&$&)12456
/$$&00
3$,$
/$$&00
3$&
1.2 Windows Types(LPSTR 系列)
%2 设计得很精巧,但常常也把简单的东西变得更复杂,下面几种类
型其实就是 、类型的 /$$& 而已。
1.2.1 ——
/$$&
1.2.2 ——%
/$$&%
1.2.3 ——
/$$&
1.2.4 ——%
/$$&%
1.2.5 ——0
/$$&0
1.2.6 ——%0
/$$&%0
1.3 STL 字符串(std::string)
该类型来自于 库,其实所有 容器都是使用泛型技术的类模版实现,
也不例外,它是类模版 7 的实例化。本质上跟 8$% 没啥区别,只是为了字
符串操作便利性做了许多优化设计而已。
1.3.1
/$$&79:;<
专门针对 12 字符串的相关操作。
1.3.2
/$$&79:;<
专门针对 )%$ 字符串的相关操作。
1.4 ATL 字符串(CString)
1.4.1 BSTR
/$$&=
1.4.2 CString
也是类模版 的实例化。客观来讲, 设计上比 要更
为精巧,也更加实用。
/$$&90:;<
会根据 0 的实际类型自动适应项目字符集配置。
1.5 COM 字符串 bstr_t
7 是 4> 中的字符串封装类,只是单纯的类,而不是类模版,它在一个类中
同时实现了对 和 的支持。
2 字符串类型之间的转换
不同的字符串类型设计思路和背景各不相同,互不兼容,但它们一定都兼容 %
、%。所以我们的思路一般是将 %()%$ 的话就是 %
)作为桥梁,按源类型%目标类型来完成转换。
2.1 char*到其他类型
2.1.1 转换到 系列
由于 本身就是 ,所以没有区别,不用转换。
字符串内容
,
而非 % 对象也可以直接转换到 % 对象,所以也能隐式转换到 类
型。
字符串内容
,
只是需要注意 %无法直接赋值到 类型,最安全的方法是将 %
拷贝到一个字符数组,然后再将字符数组赋值给 类型。
%#字符串内容
#$=+?$#$,$'#(@
=+?$$!=+?$#$"
剩余11页未读,继续阅读
资源评论
zouyu634162865
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功