Facebook
From Soft Baboon, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 178
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5.  
  6. void podmienPrzecinki (char *wyraz) {
  7.     for (int i = 0; i < strlen(wyraz); i++) {
  8.         if (wyraz[i] == ',') {
  9.             wyraz[i] = '.';
  10.         }
  11.     }
  12.     return wyraz;
  13. }
  14.  
  15. void podmienKropki (char *wyraz) {
  16.     for (int i = 0; i < strlen(wyraz); i++) {
  17.         if (wyraz[i] == '.') {
  18.             wyraz[i] = ',';
  19.         }
  20.     }
  21.     return wyraz;
  22. }
  23.  
  24. void dodajWyraz (char *wyraz, char *liniaWyjscia, int koniec) {
  25.     int poczatek = koniec - strlen(wyraz);
  26.     for (int i = poczatek, j = 0; i < koniec; i++, j++) {
  27.         liniaWyjscia[i] = wyraz[j];
  28.     }
  29.     liniaWyjscia[koniec] = ' ';
  30. }
  31.  
  32. int main()
  33. {
  34.     char liniaWejscia[100];
  35.     char liniaWyjscia[100];
  36.     char wyraz[100];
  37.  
  38.     printf("Wpisz tekst: ");
  39.     gets(liniaWejscia);
  40.  
  41.     int dlugoscLinii = strlen(liniaWejscia);
  42.     int j = 0;
  43.     bool czyWyrazAnglosaski;
  44.     int iloscCyfr;
  45.     int iloscPrzecinkow;
  46.     int iloscKropek;
  47.  
  48.     for (int i = 0; i <= dlugoscLinii; i++) {
  49.         if (liniaWejscia[i] == ' ' || liniaWejscia[i] == '\0') {
  50.             wyraz[j] = '\0';
  51.             czyWyrazAnglosaski = true;
  52.             iloscCyfr = 0;
  53.             iloscKropek = 0;
  54.             iloscPrzecinkow = 0;
  55.             for (int k = 0; k < strlen(wyraz); k++) {
  56.                 if (wyraz[k] >= '0' && wyraz[k] <= '9') {
  57.                     iloscCyfr++;
  58.                 } else if (wyraz[k] == ',') {
  59.                     if (iloscPrzecinkow == 0 && iloscCyfr < 4) {
  60.                         iloscCyfr = 0;
  61.                         iloscPrzecinkow++;
  62.                     } else if (iloscCyfr == 3){
  63.                         iloscCyfr = 0;
  64.                         iloscPrzecinkow++;
  65.                     } else {
  66.                         czyWyrazAnglosaski = false;
  67.                         break;
  68.                     }
  69.                 } else if (wyraz[k] == '.') {
  70.                     if (iloscKropek < 2) {
  71.                         iloscKropek++;
  72.                     } else {
  73.                         czyWyrazAnglosaski = false;
  74.                         break;
  75.                     }
  76.                 } else {
  77.                     czyWyrazAnglosaski = false;
  78.                     break;
  79.                 }
  80.             }
  81.             if (czyWyrazAnglosaski) {
  82.                 if (iloscPrzecinkow > 0) {
  83.                     podmienPrzecinki(wyraz);
  84.                 } else {
  85.                     podmienKropki(wyraz);
  86.                 }
  87.             }
  88.             dodajWyraz(wyraz, liniaWyjscia, i);
  89.             j = 0;
  90.             memset(wyraz, 0, sizeof wyraz);
  91.         } else {
  92.             wyraz[j] = liniaWejscia[i];
  93.             j++;
  94.         }
  95.     }
  96.     printf("Rezultat: ");
  97.     for (int i = 0; i < dlugoscLinii; i++) {
  98.         printf("%c", liniaWyjscia[i]);
  99.     }
  100.     printf("%c", '\n');
  101.     return 0;
  102. }