Witam! To mój pierwszy post i zapewne nie ostatni więc proszę o wyrozumiałość.
Mam problem z sortowaniem w tablicy w C.
Mam posortować podaną tablice rosnąco według pierwszych słów w kolejnych łańcuchach.
Najpierw wyodrębniłem pierwsze wyrazy z poszczególnych łańcuchów i uzyskałem odrębną tablicę z samymi 'pierwszymi' wyrazami. Potem użyłem takiego kodu żeby posortować główną tablicę korzystając z tablicy wyrazów pierwszych.
for(i = 0; i < ilosc; i++)
{
for(spr = 0; spr < ilosc-1-i; spr++)
{
if(strlen(wyrazy[spr]) > strlen(wyrazy[spr+1]))
{
for(jeden=0; jeden < strlen(tab[spr+1]); jeden++)
{
bufor[jeden] = tab[spr+1][jeden];
bufor[jeden+1] = '\0';
}
for(jeden=0; jeden < strlen(tab[spr]); jeden++)
{
tab2[spr+1][jeden] = tab[spr][jeden];
tab2[spr+1][jeden+1] = '\0';
}
for(jeden=0; jeden < strlen(bufor); jeden++)
{
tab2[spr][jeden] = bufor[jeden];
tab2[spr][jeden+1] ='\0';
}
}
}
}
Wcześniej robiłem podobne zadanie tylko, że sortowałem względem długości całych łańcuchów, a nie pierwszych wyrazów i wszystko pięknie działało. Teraz dzieją się głupoty tzn. mając taką tablicę
char tab[5][50] =
{
"Zdanie pierwsze!",
"Zda nie drugie",
"Zdanieeee trzecie",
"Kolejne zdanie - czwarte",
"Ostatnie zdanie w tablicy!"
};
element zerowy i pierwszy posortuje, ale z kolejnymi dzieją się już dziwne rzeczy. Może ktoś mi pomóc bo mi już pomysłów brak.
I tak przy okazji jak jest jakiś inny sposób sortowania tablic charów to podajcie mi bo na nic lepszego wpaść póki co nie mogłem.
#Edit :
Zauważyłem, że sortując tablicę główną nie sortuję tablicy 'pierwszych wyrazów' co powoduje błąd, ale mimo poprawienia tego dalej nie działa. Ktokolwiek? Cokolwiek?
#Edit
Ok. Działa. Można temat zamknąć....