jsh*_*py8 1 c arrays string char
虽然我使用C++,但作为一项要求,我需要使用const char*数组而不是字符串或char数组.由于我是新手,我需要学习如何使用const char*.我已经将我的const char*数组声明为const char* str[5].在程序的稍后阶段,我需要使用值填充5个元素中的每个元素.
但是,如果我尝试分配这样的值:
const char* str[5];
char value[5];
value[0] = "hello";
str[0] = value[0];
Run Code Online (Sandbox Code Playgroud)
它不会编译.将char数组添加到char到const char*数组然后打印数组的正确方法是什么?任何帮助,将不胜感激.谢谢.
该字符串"hello"由6个字符组成,而不是5个字符.
{'h', 'e', 'l', 'l', 'o', '\0'}
Run Code Online (Sandbox Code Playgroud)如果在声明时分配字符串value,则代码看起来与您当前的代码类似:
char value[6] = "hello";
Run Code Online (Sandbox Code Playgroud)如果你想分成两行,你应该使用strncpy().
char value[6];
strncpy(value, "hello", sizeof(value));
Run Code Online (Sandbox Code Playgroud)要将指针value放在名为的字符串列表中str:
const char * str[5];
char value[6] = "hello";
str[0] = value;
Run Code Online (Sandbox Code Playgroud)
请注意,这叶子str[1]通过str[4]与未定值.