从unsigned char转换为char *

时间:2015-05-09 15:26:24

标签: c

我有一个当前返回unsigned char的函数。但是,我想将unsigned char强制转换为char*,但我会继续从/向指针转换为/向不同大小的整数警告。

foo成为返回unsigned char的函数

我试过这样的事情:

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

转换为char*的原因是因为我需要使用strcasecmp函数来执行字符串比较。

2 个答案:

答案 0 :(得分:2)

您根本无法将非指针函数返回值强制转换为指针。想一想,这个指针指向哪里?

但是,您可以将结果保存到变量并指向它。 例如,

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

编辑:

正如另一个答案所说,如果你想使用strcasecmp,你需要一个char数组,其中最后一个字节是空终止符。

答案 1 :(得分:2)

要实现您的目标,请使用以下代码:

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

这将构建一个包含单个字符的字符串的数组,然后您可以使用该字符串。