使strncmp()接受无符号的char *作为论点
Making strncmp() accept unsigned char * as an argument
我有一个指向"无符号char *"字符串的指针,我想将其用作strncmp()函数中的参数。但是编译器抱怨:
invalid conversion from 'unsigned char*' to 'const char*'
我该如何制作:
strncmp(const char *a, unsigned char *b, size_t size);
工作?
有任何解决方法吗?
您可以安全地将未签名的施放到签名中。
unsigned char * p2 = ...;
strncmp(px, (char *)p2, 5);
应该工作。
unsigned char * p2 = ...;
char * p3 = static_cast<char *>(p2);
这可能过分杀伤。
不确定为什么要使用unsigned char*
,但是如果需要,请使用铸件。例如:
strncmp(a, (char*)b, 10);
使用reinterpret_cast将其转换。这样的东西 -
strncmp(const char *a, reinterpret_cast<const char*>(unsigned char
*b), size_t size);
相关文章:
- 将无符号char*转换为std::istream*C++
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 用 Q_DECLARE_METATYPE 声明无符号的 char[]
- 覆盖性静态分析说无符号的int是char(C++)
- 错误:AES 加密密钥:从"char*"到"无符号字符"的转换无效
- 为什么 fstream.read 和 fstream.write 使用 char 而不是无符号字符?
- 通过无符号 char 别名进行对象访问,加载和存储时会发生什么?
- 将数据从 vector<unsigned char> 传输到无符号 char[]
- 如何修复此 OpenCV 错误:断言失败((无符号)i < (无符号)cn) 在 cv::Vec<unsigned char,3>:::运算符 (), 文件
- 将 const std::vector<char> 转换为无符号字符*?
- 为什么basic_fstream<无符号字符>比 Windows 上的basic_fstream慢一个数量级<char>?
- 将 C++ 转换为 Python 通过引用返回无符号 char*
- "WORD":"char [20]"与"无符号短"的间接级别不同
- 我可以在不复制的情况下将 std::vector 重新解释<char>为 std::vector<无符号字符>吗?
- 使strncmp()接受无符号的char *作为论点
- C 将char []从网络转换为主机订单,并分配给无符号int
- Vizualize无符号char *数组作为位图
- C/C++:将 char[] 转换为 int 失败,无符号 char[] 到 int 有效,为什么
- 将无符号char*缓冲区分配给字符串
- C++ 错误:对 '(std::string {aka std::basic_string}) (<char>无符号整数、字符)的调用不匹配