Я читаю файл и добавляю каждый символ в массив. Затем я разбиваю эти символы на слова, удаляя пробелы и другие несущественные символы. Теперь, чтобы работать с каждым словом индивидуально, я хотел бы добавить каждое слово в собственный массив. Есть какой-либо способ сделать это? Я попытался добавить местоположение памяти начала каждого слова, но он продолжает давать мне адрес памяти самого начала массива. Проблема заключается в том, что в приведенном ниже коде переменная с именем «buffer» перезаписывает себя новым словом с каждой итерацией цикла while. Мне нужно иметь возможность ссылаться на каждое слово, чтобы вставить его в связанный список. Вот то, что я до сих пор:C Как ссылаться на различные ячейки памяти в одном массиве
#include <stdio.h>
#include <ctype.h>
int main(int argc, char **argv) {
char buffer[1024];
int c;
size_t n = 0;
FILE *pFile = stdin;
pFile = fopen(argv[1], "r");
if (pFile == NULL) perror("Error opening file");
else {
while((c = fgetc(pFile)) != EOF) {
if (isspace(c) || ispunct(c)) {
if (n > 0) {
buffer[n] = 0;
printf("read word %s\n", buffer);
n = 0;
}
} else {
buffer[n++] = c;
}
}
if (n > 0) {
buffer[n] = 0;
printf("read word %s\n", buffer);
}
fclose(pFile);
}
return 0;
}
Если я даю файл, содержащий символы «это тест документ, который содержит слово для этого упражнения», следующий производятся:
read word This
read word is
read word a
read word test
read word document
read word that
read word holds
read word words
read word for
read word this
read word exercise
Там нет связанного списка в коде, но как только вы его добавите, вы можете использовать 'strcpy' для копирования текущего содержимого' buffer' в новый элемент связанного списка. – jogojapan