我想转换unsigned const char *
为char const *
传递给strcpy
函数
请提出一些方法
(const char *) my_signed_char
在 C++ 中,有更多惯用的方法来转换它,但是由于您使用的是 strcpy,因此您似乎不是在编程惯用的 C++。
在 ANSI CI 中相信它应该可以工作,例如:
#include <string.h>
int main() {
const char *s="test";
unsigned const char *d = s;
char dest[1000];
strcpy(dest,d);
}
您可以尝试添加演员表:
#include <string.h>
int main() {
const char *s="test";
unsigned const char *d = s;
char dest[1000];
strcpy(dest,(const char *) d);
}
这对我有用;这是你的想法吗?
#include <stdio.h>
#include <string.h>
int main(int argc, char ** argv)
{
const char foo[] = "foo";
unsigned const char * x = (unsigned const char *) foo;
char bar[20];
strcpy(bar, (const char *)x);
printf("bar=[%s]\n", bar);
return 0;
}
请注意,如果您尝试将 (unsigned const char *) 指针传递给 strcpy 的第一个参数,那么您可能正在尝试做一些您不应该做的事情(编译器将其标记为错误是正确的);因为 strcpy() 将写入其第一个参数指向的内存,而 const 指针是不应写入其数据的指针。