如何为const char*数组赋值并打印到屏幕

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*数组然后打印数组的正确方法是什么?任何帮助,将不胜感激.谢谢.

Bil*_*nch 6

  1. 该字符串"hello"由6个字符组成,而不是5个字符.

    {'h', 'e', 'l', 'l', 'o', '\0'}
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果在声明时分配字符串value,则代码看起来与您当前的代码类似:

    char value[6] = "hello";
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果你想分成两行,你应该使用strncpy().

    char value[6];
    strncpy(value, "hello", sizeof(value));
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要将指针value放在名为的字符串列表中str:

    const char * str[5];
    char value[6] = "hello";
    str[0] = value;
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,这叶子str[1]通过str[4]与未定值.