Witam!
Męczę się nad jedną rzeczą, a dokładniej nad sortowaniem wyrazów w stringu.
Mój program dla danej wejściowej postaci: [5] aaa bbb uuu ddd eee ccc
ma zwrócić:
aaa bbb ccc ddd eee uuu
Oto co udało mi się spłodzić jak do tej pory:
char *word;
char *temp;
char *words[30];
i=-1;
int j, k;
word=strtok(buffor, "[5] ");
while(word!=NULL){
i++;
words[i]=word;
word=strtok(NULL, "[5] ");
}
printf("%d", i);
for(j=0; j<i-2; j++){
for(k=0; k<i-2; k++){
if(strcmp(words[k], words[k+1])>0){
strcpy(temp, words[k]);
strcpy(words[k], words[k+1]);
strcpy(words[k+1], temp);
puts(words[k]);
puts(words[k+1]);
}
}
}
for(j=0; j<i-1; j++){
strncat(buf2, words[j], strlen(words[j]));
strncat(buf2, "-", 1);
}
Problem jest taki, że sortowanie nie jest pełne (np. jeden wyraz będzie na złym miejscu), a czasami nawet w ogóle nie działa.
Z góry dziękuję za pomoc,
pozdrawiam!