Мой код, как показано ниже:как читать каждое слово в строке из текстового файла
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *fp = fopen("text.txt", "r");
char c;
int d = 0;
char arr[2000];
do {
c = fgetc(fp);
d = d + 1;
if (c == '\n') {
arr[d] = ' ';
} else
arr[d] = c;
} while (c != EOF);
int z = strlen(arr);
arr[0]= '\0';
for (int i = 0;i < z; i++) {
arr[i] = arr[i +1];
}
fclose(fp);
return 0;
}
код считывает строку из текстового файла и ANDS их в массив обр [2000] (есть много слов в текстовом файле). Я хотел спросить, знает ли кто-нибудь, как код читает текстовый файл по каждому слову, разделенному пробелом, а не символом.
Так, например, если я был массив обр шпагатом: «Джек мальчик»
обр [0] будет равна «Джек», а не «J»
пс (причина для для петля на конце, который удаляет индекс 0, потому что я постоянно получаю «(» символ в начале массива)
любая помощь будет высоко ценится.
Возможно, вы захотите убедиться, что символ, который вы прочитали, не является 'EOF' * до того, как вы его используете. Может быть, делать так: while ((c = fgetc (fp))! = EOF) {...} 'вместо этого. –
О, и ограничитель строк должен быть * последним * символом, без него строковые функции, такие как 'strlen', не будут работать, и вы получите * неопределенное поведение *. –
Кроме того, первый символ, который вы храните, должен быть 'arr [0]', поэтому вам следует увеличивать индекс 'd' после, а не раньше, присваивание' arr [d] '. –