int main()
{
int a = 0;
int BUFSIZE = 1000;
char *string1[20];
FILE *fp1 = fopen("input1.txt", "r");
if (fp1 == 0)
{
fprintf(stderr, "Error while opening");
return 0;
}
string1[a] = (char *)malloc(BUFSIZE);
while (fgets(string1[a], BUFSIZE, fp1)!=NULL)
{
a++;
string1[a] = (char *)malloc(BUFSIZE);
}
printf("%c", string1[3]);
}
你好,我得到了上面的代码,它从一个文本文件中读取一个字符串并将它存储在一个数组中。现在我想输出数组 string1 的某个元素,但显然 printf 不起作用。此外, char *string1[20] 究竟定义了什么?它与指针有关吗?谢谢!
最佳答案
char *string1[20]
声明一个数组,命名为string1
, 共 20 个 指向 char
的指针。因此 string1[3]
是指向 char
的指针, 而不是 char
,正如 %c
所要求的那样格式。
自 string1[3]
是 - 如果有的话 - 通过 fgets
填充,它包含一个以 0 结尾的字符串,因此您可以使用
printf("%s\n", string1[3]);
如果你想打印单个字符,你会使用
printf("%c\n", string1[3][4]);
例如。
关于c - char* 究竟定义了什么?如果它定义了一个字符串数组,我如何输出单个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13325234/