Список фамилий вводится через запятую в виде строки. Упорядочить фамилии по алфавиту - C (СИ)

Формулировка задачи:

Хотел еще попросить помочь написать вот эту программу: Список фамилий вводится через запятую в виде строки. Упорядочить фамилии по алфавиту. Суть проблемы состоит в том, что моя программа не может сортировать по нормальному и выводит кучу мусора. Спасибо.

Код к задаче: «Список фамилий вводится через запятую в виде строки. Упорядочить фамилии по алфавиту - C (СИ)»

textual
#include <stdio.h>
#include <string.h>
#define MAX_WORD_LEN 10
#define MAX_WORD_COUNT 10
 
int main()
{
char stroka[200],str[MAX_WORD_COUNT][MAX_WORD_LEN],word[MAX_WORD_LEN];
char *tmp;
int i=0,j=0,k;
 
 
printf("Enter string: ");
gets(stroka);
tmp=strtok(stroka,",");
while(tmp!=NULL)
{
 strncpy(str[i], tmp, MAX_WORD_LEN); //запись каждой фамилии в массив
 tmp=strtok(NULL,",");
 i++;
}
//сортировка
for (j=0;j<i;j++)
    {
        for (k=0;k<i;k++)
        {
            if(strlen(str[k])<strlen(str[k+1]))
            {
                strcpy(word,str[k]);
                strcpy(str[k],str[k+1]);
                strcpy(str[k+1],word);
            }
        }
    }
//вывод
for(j=0;j<i;j++)
   printf("%s\n",str[j]);
 
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

6   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ