Здравствуйте.
Стоит такая задача: в файле записаны строки, эти строкиа надо разбить на слова и слова записать в списки, т.е. собственно списки идут друг за другом, надо реализовать добавление слов в эту последовательность с конца и с начала, т.е. сначала перейти в последний список и заложить туда элемент и потом идти к первому, в другом случае начать с первого и идти до последнего списка..... Вот так. Прозьба Выполнить на Си, компилтор желателен VS.
Заранее благодарю
С уважением.
Попробуй прогнать вот это:
#include <stdio.h>
#include <alloc.h>
typedef char *T;
typedef
struct node {
T value;
struct node *next;
} *List;
List create_node(T val) {
List p = (List)malloc(sizeof(struct node));
p -> value = (char *)malloc(strlen(val)+1);
strcpy(p -> value, val);
p -> next = NULL;
return p;
}
List Init(List *L) {
return *L = NULL;
}
List insert(T val, List L) {
List p = create_node(val);
p -> next = L;
return p;
}
void printlist(List L) {
printf("\n");
for(; L != NULL; L = L -> next)
printf("%15s", L -> value);
}
List append(T val, List L) {
List head;
if(!L) {
L = create_node(val);
return L;
}
else {
head = L;
while(L -> next != NULL) L = L -> next;
L -> next = create_node(val);
return head;
}
}
int main(void) {
FILE *f;
char s[200], *p, *delimiter = "\n .,!?";
List L;
Init(&L);
f = fopen("text700.txt", "rt");
while(!feof(f)) {
fgets(s, 200, f);
p = (char *)strtok(s, delimiter);
while(p) {
L = append(p, L);
p = (char *)strtok(NULL, delimiter);
}
}
printlist(L);
/*
Не забудь удалить содержимое списка !!!
*/
return 0;
}
Спасибо, попробую.... компилятор будет уже только собственно на занятиях потому там и прогоню...если будет не сложно нет ли возможности добавить комментари для лучшего понимания программы....