Sortowanie babelkowe tablica znakow

0

Czesc, mam takie zadanie aby wczytac dane i je posortowac np.:
5
Joasia plecak wieszak szafa Mufasa
Napisalem program ale przy pojedynczych znakach w wynikach dostaje dziwne znaki czasami, tutaj kod:

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define Max_SIZE 100

int main(){
   int Z,size,x,i,j;
   char **tb;
   char k[Max_SIZE],temp[Max_SIZE];

      scanf("%u",&size);
      tb=(char**)malloc(size*sizeof(char));
      for (x = 0; x < size; x++){
            scanf("%s", &k);
            tb[x]=(char*)malloc(Max_SIZE*sizeof(char));
            strcpy(tb[x],k);
      }

      for (j=size-1; j > 0; j--){
          for (i = 0 ; i < j; i++){
             if (strcasecmp (tb[i], tb[j]) > 0){
                    char * t;
                    t = tb[i];
                    tb[i] = tb[j];
                    tb[j] = t;
                }
            }
     }

      for(x = 0; x<size; x++)printf("%s ",tb[x]);
      printf("\n");
      for(x = 0; x<size;x++)free(tb[x]);
      free(tb);

   return 0;
}
0

Jeżeli masz zagwarantowane że napis będzie nie dłuższy niż 100 znaków to potrzebujesz 101 znaków aby go przechować.

0

Tak wiem, ale mi chodzi ze np dla:
in:
10
ab d s e d f g d d w
out:
d d d d d e f g h#i s w

1
scanf("%s",k);

0 użytkowników online, w tym zalogowanych: 0, gości: 0