Advertisement
cmiN

StrComp_fin

Apr 3rd, 2011
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <cstdio>
  2.  
  3. const int n = 256;
  4. int len1, len2;
  5. char voc[] = "aAeEiIoOuU";
  6.  
  7. bool str_find(const char* source, const char c)
  8. {
  9.     for (const char* pch = source; *pch; pch++) {
  10.         if (*pch == c) {
  11.             return 1;
  12.         }
  13.     }
  14.     return 0;
  15. }
  16.  
  17. int str_comp(char* str1, char* str2)
  18. {
  19.     if (*str1 && *str2) {
  20.         if (str_find(voc, *str1)) {
  21.             len1++;
  22.         }
  23.         if (str_find(voc, *str2)) {
  24.             len2++;
  25.         }
  26.         return str_comp(str1 + 1, str2 + 1);
  27.     } else if (*str1) {
  28.         if (str_find(voc, *str1)) {
  29.             len1++;
  30.         }
  31.         return str_comp(str1 + 1, str2);
  32.     } else if (*str2) {
  33.         if (str_find(voc, *str2)) {
  34.             len2++;
  35.         }
  36.         return str_comp(str1, str2 + 1);
  37.     } else {
  38.         if (len1 == len2) {
  39.             return 0;
  40.         } else if (len1 > len2) {
  41.             return 1;
  42.         } else {
  43.             return 2;
  44.         }
  45.     }
  46. }
  47.  
  48. void str_copy(char* dst, const char* src)
  49. {
  50.     int i;
  51.     for (i = 0; src[i]; i++) {
  52.         dst[i] = src[i];
  53.     }
  54.     dst[i] = 0;
  55. }
  56.  
  57. int main()
  58. {
  59.     char str1[n], str2[n];
  60.     int res;
  61.     FILE* fin, * fout;
  62.     fin = fopen("poveste.in", "rt");
  63.     fout = fopen("poveste.out", "wt");
  64.     fscanf(fin, "%s", str1);
  65.     while (!feof(fin)) {
  66.         fscanf(fin, "%s", str2);
  67.         res = str_comp(str1, str2);
  68.         if (res == 1) {
  69.             fprintf(fout, "%s\n", str2);
  70.         } else {
  71.             fprintf(fout, "%s\n", str1);
  72.             str_copy(str1, str2);
  73.         }
  74.     }
  75.     fprintf(fout, "%s\n", str1);
  76.     fclose(fin);
  77.     fclose(fout);
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement