Advertisement
JewishCat

Ykaz_26v

Dec 19th, 2015
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. /*
  7. * Написать функцию, которая принимает строку,
  8. * а возвращает количество гласных, согласных и символов-разделителей в ней.
  9. * Объявить указатель на полученную функцию и вызвать её с помощью указателя.
  10. */
  11.  
  12. int* ykaz(char *str);
  13.  
  14. int main() {
  15.  
  16.     int*(*ptrnod)(char *str);
  17.     ptrnod = ykaz;
  18.     char *str = new char;
  19.     cout << "Enter value a String:" << endl;
  20.     cin.getline(str, 90);
  21.     int* mas = ptrnod(str);
  22.     cout << "Soglas " << mas[0] << endl << "Glas " << mas[1] << endl << "Razdel " << mas[2] << endl;
  23.     system("pause");
  24.     return 0;
  25. }
  26. int* ykaz(char *str) {
  27.     char buf_gl[] = "AEIOUaeiou";
  28.     char buf_sg[] = "QWRTYPSDFGHJKLZXCVBNMqwrtypsdfghjklzxcvbnm";
  29.     int ch_gl = 0;
  30.     int ch_sg = 0;
  31.     int ch_raz = 0;
  32.     int n = 0, k = 0, m = 0;
  33.     while (str[n] != '\0') {
  34.         k = 0;
  35.         m = 0;
  36.         while (buf_gl[k] != '\0') {
  37.             if (buf_gl[k] == str[n]) ch_gl++;
  38.             k++;
  39.         }
  40.         while (buf_sg[m] != '\0') {
  41.             if (buf_sg[m] == str[n]) ch_sg++;
  42.             m++;
  43.         }
  44.         if (str[n] == ' ' || str[n] == '\n' || str[n] == '\t') ch_raz++;
  45.         n++;
  46.     }
  47.     int *mas = new int[3];
  48.     mas[0] = ch_gl;
  49.     mas[1] = ch_sg;
  50.     mas[2] = ch_raz;
  51.     return mas;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement