1
但是在qt5中输入这样的代码是不会报错的?
只能用strcpy去赋值吗?
//因为csdn里输入星号是加粗或者斜体 所以把星号用中文写了 不然显示不出来
上面的是当普通数组拷贝, 下面的当指针指向字面常量
strcpy(ppc[0], "coffee");
ppc[1] = "coffee";
要不
const char **ppc = new const char *[5] { nullptr };
ppc[2] = "coffee";
要不
char **ppc = new char *[5] { nullptr };
ppc[0] = new char[10];
strcpy(ppc[0], "coffee");
要不按楼上的强转一下, 但你要清楚, 这不是拷贝, 是指向不可更改的字面常量, 不可更改字符. 以下的是错的.
ppc[2][1] = 't';
ppc[1] = (char *)("coffee1");
是的,或者用string保存,不能用c这种写法
【以下回答由 GPT 生成】
在C++中,char类型的数据默认是指向常量的,即const char类型。如果你想将一个字符串传入一个char类型的数组,你可以使用以下方法来修改默认的const char类型:
const char* str = "Hello"; char ppc[10];
strcpy(ppc, str); ``` 这里使用了strcpy函数来将const char类型的字符串复制到char类型的数组ppc中。
使用强制类型转换(不推荐): cpp const char* str = "Hello"; char* ppc = const_cast<char*>(str);
这里使用了const_cast来将const char类型转换为char类型。但是这种方式不推荐使用,因为修改常量字符串可能导致未定义的行为。
使用std::string: 如果你使用C++标准库的std::string类,那么你可以直接将const char类型的字符串赋值给std::string对象,然后使用c_str()函数将其转换为const char类型: ```cpp #include
const char str = "Hello"; std::string strObj = str; const char ppc = strObj.c_str(); ``` 这里使用std::string类先将const char类型的字符串赋值给strObj对象,然后使用c_str()函数将其转换为const char类型。
总结: - 使用strcpy函数是一种常见且安全的方法来将const char类型的字符串复制到char类型的数组中。 - 强制类型转换可以将const char类型转换为char类型,但不推荐使用。 - 如果使用std::string类,则可以方便地处理字符串,包括将const char*类型的字符串赋值给std::string对象,并使用c_str()函数进行类型转换。
1.做强制类型转换,(char*)字符串。
2.用stl的string存储