簡體   English   中英

有沒有function來拼接兩個char16_t

[英]Is there a function to concatenate two char16_t

有 function wcsncat_s()用於連接兩個wchar_t*

errno_t wcsncat_s( wchar_t *restrict dest, rsize_t destsz, const wchar_t *restrict src, rsize_t count );

是否有等效的 function 用於連接兩個char16_t

並不真地。

但是,在 Windows 上, wchar_t在功能上與char16_t相同,因此您可以將char16_t*轉換為wchar_t*

否則,您可以通過為自己編寫一個 function 來簡單地完成它。

如果你想要一些便攜的東西,你可以使用std::u16string

std::u16string str1(u16"The quick brown fox ");
std::u16string str2(u16"Jumped over the lazy dog");

std::u16string str3 = str1+str2;  // concatenate

const char16_t* psz = str3.c_str();

只要str3不是 scope 中的 go, psz的有效性就會持續。

但更便攜、更靈活的解決方案是在任何地方都使用 wchar_t(在 Mac 上是 32 位)。 除非您明確使用 16 位 char 字符串(可能用於特定的 UTf16 處理例程),否則將代碼保留在寬字符 ( wchar_t ) 空間中會更容易。 在 Mac 和 Windows 上與本機 API 和庫一起玩得更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM