Привет всем!! Помогите сделать задачку на
списки.
Задача:
Из входного потока читаются цепочки неопределённой длины. Известно, что максимальная длина <=255. Разделителями между цепочками являются один или несколько пробельных символов. Программа должна включить каждую в таблицу указателей на цепочки в алфавитном порядке первых 6-ти символов цепочки.
1. Надо каждое слово и идущие за ним символы (цепочка) выделить, а всё что перед словом удалить, так сделать с каждым словом.
2. Полученные цепочки отсортировать!!
Пример программы:
Введите строку: video play music audio bass
Результат:
audio bass
bass
music audio bass
play music audio bass
video play music audio bass
Пожалуйста помогите, очень надо...
Через указатели есть надо через списки или через классы!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int compar(const void * a, const void *b){
return strncmp(*(char**) a, *(char**)b, 6);
}
int main(void){
char s[256]={0}, *p=s;
char * words[256];
int w_c=0, inword=0, i;
fgets(s, 256, stdin);
while(*p){
if(' ' == *p)
inword=0;
else
if(0==inword){
words[w_c++]=p;
inword=1;
}
p++;
}
qsort(words, w_c, sizeof(char*), *compar);
for(i=0;i<w_c;i++) printf("%s\n", words[i]);
}