簡體   English   中英

從未簽名的char轉換為char *

[英]convert from unsigned char to char*

我有一個當前返回unsigned char的函數。 但是,我想將unsigned char轉換為char*但是我一直在將指針從/強制轉換為不同大小的整數。

foo為返回無符號字符的函數

我嘗試過這樣的事情:

char* convert = (char*)foo();

轉換為char*的原因是因為我需要使用strcasecmp函數來執行字符串比較。

您根本無法將非指針函數的返回值轉換為指針。 考慮一下,此指針將指向何處?

但是,您可以將結果保存到變量中並具有指向它的指針。 例如,

 char tmp = (char) foo();
 char * ptr = &tmp;

編輯:

另一個答案是,如果要使用strcasecmp ,則需要一個char數組,其中最后一個字節是空終止符。

要實現您想要的,請使用以下代碼:

char array [2];
array [0] = (char) foo ();
array [1] = '\0';
...
... strcasecmp (array, ...);

這將構建一個包含單個字符的字符串的數組,然后可以使用它。

暫無
暫無

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

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