[英]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.