使strncmp()接受unsigned char *作为参数

时间:2016-12-22 06:52:25

标签: c++ c

我有一个指向字符串的指针,它是“unsigned char *”,我想在strncmp()函数中将它用作参数。 但编译器抱怨:

invalid conversion from 'unsigned char*' to 'const char*'

我该如何制作:

strncmp(const char *a, unsigned char *b, size_t size); 

工作?

有解决方法吗?

3 个答案:

答案 0 :(得分:3)

您可以安全地将unsigned转换为signed。

 unsigned char * p2 = ...;
 strncmp(px, (char *)p2, 5); 

应该有用。

 unsigned char * p2 = ...;
 char * p3 = static_cast<char *>(p2);

这可能有点过头了。

答案 1 :(得分:0)

不确定您使用unsigned char*的原因,但如果需要,请使用演员。例如:

strncmp(a, (char*)b, 10);

答案 2 :(得分:0)

使用reinterpret_cast进行转换。像这样的东西 -

.//*[@type="file"]