繁体   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