gpt4 book ai didi

c - char* 究竟定义了什么?如果它定义了一个字符串数组,我如何输出单个元素?

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:31 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com