codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <cctype> struct tnode { char* ptr; tnode* next; }; void tnode_init(tnode* arr[], int num); void tnode_token(tnode* arr[], int num, char* s); void tnode_free(tnode* arr[], int num); int main(void){ const int num = 26; tnode* arr[num]; tnode_init(arr, num); char s[] = "wood toy ball doll apple"; tnode_token(arr, num, s); for(int i = 0; i < num; ++i){ for(const tnode* p = arr[i]; p != NULL; p = p->next) std::cout << p->ptr << std::endl; } tnode_free(arr, num); return 0; } void tnode_init(tnode* arr[], int num){ for(int i = 0; i < num; ++i) arr[i] = NULL; } //заполнение таблицы void tnode_token(tnode* arr[], int num, char* s){ int i; char* p; while(*s){ while(*s && !isalpha(*s)) ++s; for(p = s; isalpha(*p); ++p); if((p - s) > 0){ if(*p) *p++ = '\0'; if(islower(*s) && ((i = *s - 'a') < num)){ tnode* ptr = new (std::nothrow) tnode(); if(ptr == NULL) break; ptr->ptr = s; ptr->next = arr[i]; arr[i] = ptr; *s = toupper(*s); } } s = p; } } //удаление void tnode_free(tnode* arr[], int num){ tnode* t; for(int i = 0; i < num; ++i){ while(arr[i] != NULL){ t = arr[i]; arr[i] = arr[i]->next; delete t; } } }
Private
[
?
]
Run code
Submit