所以我想读取一个文件,然后将每个字符的字符串存储到char数组中。我的输入文件只是一个简单的“ Hello”。我想将此字符串的字符存储到char数组中,所以
arr[0] = H
arr[1] = e
arr[2] = l
arr[3] = l
arr[4] = o
我的代码如下,但不存储每个字符,而是存储整个字符串
int main(void)
{
FILE *ifp;
ifp = fopen("inputfile.c","r");
int length = 20;
char arr[length][50];
int i = 0;
while(1)
{
char r = (char)fgetc(ifp);
int k = 0;
while(r != ',' && !feof(ifp))
{
arr[i][k++] = r;
r = (char)fgetc(ifp);
}
arr[i][k] = 0;
if(feof(ifp))
{
break;
}
i++;
}
int j;
for(j = 0; j <= i; j++)
{
printf("%s\n", arr[j] );
}
return 0;
}
我在这里得到的是arr[0] = "Hello"
而不是arr[0] = H
,arr[1] = e
等
我可以从文件而不是整个字符串中逐个字符地存储字符吗?
正如Barmar已经指出的那样,它是一个二维数组。您可能可以这样做
for(j = 0; j <= i; j++)
{
int wordlength = strlen(arr[j];
for (int h = 0; h < wordlength; h++)
{
printf("%c\n", arr[j][h] );
}
}
编辑:您必须包括在内。