Guest User

Untitled

a guest
Jan 26th, 2019
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int porownanie_chary(const void *a, const void *b) {
  6. const char **ia = (const char **)a;
  7. const char **ib = (const char **)b;
  8. return strcmp(*ia, *ib);
  9. }
  10.  
  11. void wypisz_chary(char *tablica, size_t dlugosc1) {
  12. size_t i;
  13. for(i = 0; i < dlugosc1; i++) {
  14. printf("%c | ", tablica[i]);
  15. }
  16. putchar('\n');
  17. }
  18.  
  19. void sortuj_chary(FILE *plik, int l_wierszy) {
  20. char *chary = malloc(l_wierszy);
  21. int index = 0;
  22. char c;
  23. while((c = fgetc(plik)) != EOF){
  24. char word;
  25. if(c != ' ' || c != '\n'){
  26. word += c;
  27. } else {
  28. chary[index] = word;
  29. index++;
  30. }
  31. }
  32.  
  33. size_t char_dlugosc = sizeof(chary) / sizeof(char *);
  34. printf("%zu\n", sizeof(chary) / sizeof(char *));
  35. for(int i = 0; i < l_wierszy; i++) {
  36. printf("%c | ", chary[i]);
  37. }
  38. //puts("*** Char sortowanie...");
  39. //wypisz_chary(chary, char_dlugosc);
  40. //qsort(chary, char_dlugosc, sizeof(char *), porownanie_chary);
  41. //wypisz_chary(chary, char_dlugosc);
  42. free (chary);
  43. }
  44.  
  45. int main(int argc, char *argv[]){
  46. char * filename = argv[1];
  47. FILE * plik = fopen(filename, "r");
  48. int wiersz = 0;
  49. char znak;
  50. int last = 1;
  51. if((plik = fopen(*++argv, "r")) == NULL){
  52. printf("Nie moge otworzyc pliku %s\n", *argv);
  53. return 1;
  54. }
  55. while((znak = getc(plik)) != EOF){
  56. if(znak == '\n'){
  57. last = 1;
  58. } else if (znak != '\n' && last == 1) {
  59. wiersz++;
  60. last = 0;
  61. }
  62. }
  63.  
  64. printf("Plik zawiera %d wiersze\n", wiersz);
  65. sortuj_chary(plik, wiersz);
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment