QString在内部存储的QChar数组是不是确保最后一个存储的QChar是0,这样就能直接转换为wchar_t*类型?

牧童吃五谷 2020-10-02 10:05:00
QString在被初始化为中英文字符串的情况下在内部存储的数据数组是不是确保最后一个存储的QChar是0,这样就能直接转换为wchar_t*类型?
我知道QString本身是支持存储含有0的“字符串”的,但我们初始化为不含0的字符串的

例如:
QString str = "123计算机";//这里不初始化含0的字符串
wchar_t* pUnicode = (wchar_t*)str.unicode();

这个是不是能够确保 pUnicode是基本的C语言以0作为结束符的字符串。
我经过多次测试是0作为结束符的,但这个只是测试,不知道是否能够确保如此的?
...全文
13668 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
donwmufromdying 2020-10-07
  • 打赏
  • 举报
回复
都是QString了还哪来的结尾0啊。你这是c字符串的思维模式
龚建波 2020-10-07
  • 打赏
  • 举报
回复
你如果实现一个字符串类难道还要用0结束么,那还不如直接char*
牧童吃五谷 2020-10-06
  • 打赏
  • 举报
回复
我只想知道下面这种情况 QString str = “123计算机”; 这样得到str 字符串内部末尾是不是有一个 0
qybao 2020-10-03
  • 打赏
  • 举报
回复
不是,这个0结束符是自己保证的 QString str = “123计算机”; //等式右边是个const char *的字符串,自带0结束符(这是c的字符串风格,都是自带0结束符的) 但是如果 const char *p = {‘1’, ‘2’, ‘3’}; //不带0结束符 QString str = p; //这样构造的QString是不带0结束符,属于未定义行

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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