我想创建一个字符串数组.这是代码:
#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)
我该如何纠正?
如果要创建字符串数组,则缺少星号,并终止零:
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'}构造相同的效果.