Advertisement
VSZM

Stringek rendezése

Apr 25th, 2014
233
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4.  
  5.  
  6. // ABC sorrend
  7. int String_Comparer(const void *a, const void *b)
  8. {
  9.     return strcmp(*(char**)a,*(char**)b);
  10. }
  11.  
  12. // Hossz szerinti növekvő sorrend
  13. int String_Length_Comparer(const void *a, const void *b)
  14. {
  15.     return strlen(*(char**)a) - strlen(*(char**)b);
  16. }
  17.  
  18. int main()
  19. {
  20.     char **names;
  21.     int n, i;
  22.    
  23.     scanf("%d", &n);
  24.     names = (char**)malloc(n * sizeof(char*));
  25.    
  26.     for(i = 0; i < n ; ++i)
  27.     {
  28.         char str[100];
  29.         scanf("%s", str);
  30.        
  31.         names[i] = (char*)malloc(strlen(str) + 1);
  32.            
  33.         strcpy(names[i], str);
  34.     }  
  35.    
  36.     qsort(names, n, sizeof(char*), String_Length_Comparer);
  37.  
  38.     for(i = 0; i < n ; ++i)
  39.         printf("%s\t", names[i]);
  40.  
  41.     for(i = 0; i < n ; ++i)
  42.         free(names[i]);
  43.  
  44.     free(names);
  45.  
  46.  
  47.  
  48.  
  49.  
  50.    
  51.     return 0;
  52. }
Advertisement
RAW Paste Data Copied
Advertisement