String,Cstring和char*的区别和转换和char,wchar_t,TCHAR的区别

本文介绍了C++中String、Cstring和char*的关系及转换方法,强调char*是最基础的,而String和Cstring是对它的扩展。转换包括String到Cstring、Cstring到String、char*到String或Cstring等,涉及c_str()、getbuffer()等关键函数。此外,还探讨了char、wchar_t和TCHAR在ANSI与Unicode编码下的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String、Cstring、char*之间的关系与转换一直都是似懂非懂的,而且在MFC程序汇中也不知道什么时候有哪一个,一头雾水。。于是把网上的东西,结合之间的理解整理了一下。

一、概述

先说char*(这个是基础),因为其应该是最简单和最基础的,其从作用上讲就相当于一般的int*或者double*,这种基础的结构。但是由于字符串的特殊性,我们有单独用了其他类来处理。在c++中用了String类,而在MFC中用了Cstring类。所以,从根本上说,char*是最基本的,而string和cstring只是对char*的一个拓展而已。

二、比较

那么着三种的相互关系是什么呢?因为string和cstring都是对char*的拓展,我们可以知道他们都应该是对char*继续兼容的,这种兼容可以通过构造函数和operator=来进行。同时,如果高级的string和cstring要向低级的char*转换,就需要借助函数了。我们可以通过函数format进行。下面具体的给予说明:

1:同级之间的string和cstring

a:string到cstring

cstring.format("%s",string.c_str());

b:cstring到string

string s(cstring.getbuffer());

或者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值