我有一个指向字符串的指针,它是“unsigned char *”,我想在strncmp()函数中将它用作参数。 但编译器抱怨:
invalid conversion from 'unsigned char*' to 'const char*'
我该如何制作:
strncmp(const char *a, unsigned char *b, size_t size);
工作?
有解决方法吗?
答案 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"]