String类与wstring类的区别

本文深入探讨了C++中String类与Wstring类的本质区别,重点讲解了它们在存储字符方面的差异,指出Wstring用于存储宽字符,适合非拉丁字符如中文、日文的处理,而String类仅能存储单字节字符。

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

String类与wstring类的区别

本质区别

 

存储字符的区别

#include <iostream>  
#include <string>  
using namespace std;  
  
int main()  
{  
    wstring wstr1 = L"你好世界"; // L+普通字符串 = 宽字符串  
    const wchar_t *ch1 = wstr1.c_str(); // 转化为宽字符类型的指针  
  
    //setlocale(LC_ALL, "chs");//输出wchar_t类型的必要条件  
    wcout.imbue(std::locale("chs")); //输出wchar_t类型的必要条件  
    wcout << *ch1 << endl; // 输出"你"这个文字  
} 

 

注:以上两个必要条件选其一即可。

这个程序主要想说明:wstring本质上操作的是wchar_t类型的字符,只不过把对宽字符的操作封装成了类,wstring的使用方式与string类并无差别,但是wstring与string的存储方式有很大的不同,wstring所操作的wchar_t中每个字符占两个字节,可以存储一个汉字,特殊字符……,但是string类的char中每个字符仅占据一个字节内存,没办法存储汉字……等双字节字符,wstring的出现是得更加字符得以加入,如果编写的应用程序需要更好地支持非拉丁字符,如中文和日文,应使用std::wstring。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值