gpt4 book ai didi

c++ - 将 basic_string 传递给只接受 wchar_t * 和 char * 的方法

转载 作者:可可西里 更新时间:2023-11-01 10:25:20 25 4
gpt4 key购买 nike

当您只能获取存储在 char16_t 的 basic_string 中的值时,如何使用仅接受 char * 和 wchar_t * 的方法?

例如在 cstdio 中删除。

  • cstdio 中的remove 函数只接受char * 和wchar_t *。
  • 不能将 char16_t 转换为 wstring:link .
  • Char 无法处理所有 UTF-16 字符

最佳答案

您需要对卡在 std::basic_string<char16_t> 中的 UTF-16 进行转码到采用 std::string 的任何函数所使用的正确编码或 char const*作为论据。同样,您需要在定位 wchar_t 时更改编码基于序列。当然,随着人们抛弃了在内部处理字符而不是编码的想法,提供合适的设施来处理编码之间的变化会很有用。有两种方法可以处理字节和字符之间的编码/解码,即 std::codecvt<...>和多字节转换函数系列(例如 mbtowc()

哪种转换合适还取决于目标 API:并非所有 API 都能够合理处理,例如 UTF-8。转换可能涉及实际支持的字符的选择。

关于c++ - 将 basic_string<char16_t> 传递给只接受 wchar_t * 和 char * 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com