我正在做一个班级项目,我真的需要帮助。我需要实现的是从一个文本文件或两个单独的文件中读取两个字符串,并将它们分别存储在两个数组中。字符串可以是任意长度,但不必很长。每个数组的大小可以根据对应字符串的长度自动调整。
我在 Stack Overflow 上搜索并得到了一些代码,我正在尝试使用malloc()
. 但是当我尝试获取数组的大小时遇到了麻烦。
int main(){
int i = 0;
int BUFSIZE = 1000;
char* string[20];
FILE *fp = fopen("input.txt", "r");
if (fp == 0){
fprintf(stderr, "Error while opening");
return 0;
}
string[i] = (char *)malloc(BUFSIZE);
while (fgets(string[i], BUFSIZE, fp)) {
i++;
string[i] = (char *)malloc(BUFSIZE);
}
float len=sizeof(string);
printf("%f", len);
int x;
for(x = 0; x<i; x++)
free(string[x]);
scanf("%d", x);
fclose(fp);
return 0;
}
我试图输出 len,但无论字符串有多长,我都得到一个常数值 80。此外,我不知道如何读取两个字符串,并将它们存储在两个单独的数组中。尝试将另一个字符串添加到代码中时出现错误。