是否有连接两个 char16_t 的函数
有用于连接两个 wchar_t*
的函数 wcsncat_s()
:
errno_t wcsncat_s( wchar_t *restrict dest, rsize_t destsz, const wchar_t *restrict src, rsize_t count );
是否有用于连接两个 char16_t
的等效函数?
There is the function wcsncat_s()
for concatenating two wchar_t*
:
errno_t wcsncat_s( wchar_t *restrict dest, rsize_t destsz, const wchar_t *restrict src, rsize_t count );
Is there an equivalent function for concatenating two char16_t
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
并不真地。
不过,在 Windows 上,
wchar_t
在功能上与char16_t
相同,因此您只需将char16_t*
转换为wchar_t*.
否则,您可以通过自己编写一个函数来简单地完成它。
Not really.
On Windows, though,
wchar_t
is functionally identical tochar16_t
, so you could just cast yourchar16_t*
to awchar_t*
.Otherwise you can do it simply enough by writing yourself a function for it.
如果您想要便携的东西,您可以使用 std::u16string 。
只要
str3
不超出范围,psz
的有效性就会持续。但更便携、更灵活的解决方案是在任何地方都使用 wchar_t(在 Mac 上是 32 位)。除非您明确使用 16 位字符字符串(可能用于特定的 UTf16 处理例程),否则将代码保留在宽字符 (
wchar_t
) 空间中会更容易。在 Mac 和 Windows 上与本机 API 和库配合得更好。You could use std::u16string if you want something portable.
The validity of
psz
lasts as long asstr3
doesn't go out of out scope.But the more portable and flexible solution is to just use wchar_t everywhere (which is 32-bit on Mac). Unless you are explicitly using 16-bit char strings (perhaps for a specific UTf16 processing routine), it's easier to just keep your code in the wide char (
wchar_t
) space. Plays nicer with native APIs and libraries on Mac and Windows.