簡體   English   中英

在 C 中將 wchar_t 數組轉換為 int 數組

[英]convert wchar_t array into int array in C

我正在嘗試將 wchar_t 數組轉換為 int 數組,其中包含 C 中每個 wchar_t 元素的編碼。 我知道我可以通過像下面的代碼這樣的循環來做到這一點,有沒有其他方法不使用可以大大提高性能的循環?

 for(int i=0; i< filesize; i++){
    t[i] = (int)p[i];   //t is an int array, p is a wchar_t array
}

不。在那種情況下,沒有真正的選擇(至少如果您考慮到可移植性)。 否則,mediocrevegetable1 是一個可能的解決方案。

假設wchar_tint具有相同的大小,那么memcpy可能就是您想要的。

#include <string.h>
#include <wchar.h>

int main(void)
{
    _Static_assert(sizeof (int) == sizeof (wchar_t), "This won't work");
    wchar_t warr[3] = {L'a', L'b', L'c'};
    int iarr[3] = {0};
    memcpy(iarr, warr, sizeof warr);
    // iarr now holds the same contents as warr
}

暫無
暫無

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

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