问个宽字符串的问题

YY_MM_DD 2011-07-11 05:49:52
我想求个宽字符串的长度,
wstring name = "猫和老鼠";
cout << name.size() << endl;
cout << name.empty() <<endl;
怎么都出错误,提示宽字符串没有.size和empty两个成员函数,那我该怎么求出宽字符串的长度,求高人指点下,不胜感激。
...全文
66 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
序员 2011-07-11
  • 打赏
  • 举报
回复

windows下
加 L 编译器就会把引号内的字符串当宽字节(unicode) ,一个字符占用2个byte
不加,就是多字节(一个ASCII字符一个byte,其他的根据编码方式一般2个)
YY_MM_DD 2011-07-11
  • 打赏
  • 举报
回复
多谢,我知道了额
zhengjiankang 2011-07-11
  • 打赏
  • 举报
回复
L是一个宏。把char*的字符串转换成wchar_t*的字符串。
YY_MM_DD 2011-07-11
  • 打赏
  • 举报
回复
多谢楼上几位,我想细化问下为什么要加L,这个有什么作用,多谢,我是菜鸟请勿介意啊。
至善者善之敌 2011-07-11
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
void main()
{
wstring name = L"猫和老鼠";
cout << name.size() << endl;
cout << name.empty() <<endl;
}

正常输出
4
0
YY_MM_DD 2011-07-11
  • 打赏
  • 举报
回复
上面的是个例子,我是调用一个函数,函数其中的一个参数是一个宽字符串类型的,然而我对其求长度,用.size()和empty都无法得出,上报错误说没有这种成员函数,这该怎么去写,麻烦看看,多谢
序员 2011-07-11
  • 打赏
  • 举报
回复
wstring name = L"猫和老鼠";

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧