如何修复此代码以创建字符串数组?

mko*_*mko 4 c arrays

我想创建一个字符串数组.这是代码:

#include <stdio.h>
int main(void){
  char str1[] = {'f','i'};
  char str2[] = {'s','e'};
  char str3[] = {'t','h'};
  char arry_of_string[] = {str1,str2,str3};
  printf("%s\n",arry_of_string[1]);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是不起作用的行:

char arry_of_string[] = {str1,str2,str3}; 
Run Code Online (Sandbox Code Playgroud)

我该如何纠正?

das*_*ght 6

如果要创建字符串数组,则缺少星号,并终止零:

char str1[] = {'f','i','\0'};
char str2[] = {'s','e','\0'};
char str3[] = {'t','h','\0'};
char *arry_of_string[] = {str1,str2,str3};
Run Code Online (Sandbox Code Playgroud)

还有一种更简单的方法来处理单个字符串:

char str1[] = "fi";
char str2[] = "se";
char str3[] = "th";
char *arry_of_string[] = {str1,str2,str3};
Run Code Online (Sandbox Code Playgroud)

使用char x[] = "..."构造时,字符串文字的内容(包括终止零)将被复制到允许写入的内存中,从而产生与char x[] = {'.', '.', ... '\0'}构造相同的效果.