Advertisement
ELENA09

laba3b

Jun 9th, 2020
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. int main()
  5. {
  6.     setlocale(LC_ALL, "Russian");
  7.     char first[100];
  8.     cout<< "Введите строку, состоящую из заглавных английских букв"<<endl;
  9.     cin.getline(first, sizeof(first));
  10.     //cout << first << endl;
  11.     int lfirst = 0;
  12.     int n = 0;
  13.     __asm {
  14.         lea edi, first
  15.         l1 :
  16.         cmp[edi], 0; '\0'
  17.             je      _l1
  18.             inc[lfirst]
  19.             inc     edi
  20.             jmp     l1
  21.             _l1 :
  22.         ; узнали длину, занесли в lfirst
  23.             mov ecx, [lfirst]; в счётчик заносим длину
  24.             cmp ecx, 0
  25.             je er
  26.             xor edx, edx; обнуляем, в edx храним количество встреченных А для одного слова
  27.             lea edi, first; заносим адрес строчки
  28.             cy:
  29.         cmp[edi], 'A'; если символ = А, то увеличиваем наш счётчик edx
  30.             jne ou
  31.             inc edx
  32.             jmp fin
  33.             ou :        ; символ не А
  34.             cmp[edi], ' '; сравниваем символ с пробелом
  35.             jne fin
  36.                 p:
  37.                     cmp edx, 0; сравниваем с нулём
  38.                     je finfin; если равен, то выходим, а иначе
  39.                         inc[n]; увеличиваем n, в которой хранится количество слов, содержащих А
  40.                         xor edx, edx; т.к edx - счётчик для одного слова, то в конце слова мы этот счётчик обнуляем
  41.                 jmp finfin
  42.                 fin:
  43.                 cmp ecx, 1
  44.                     je p; для последнего символа тоже надо проверить счётчик
  45.                     finfin:
  46.                 inc edi
  47.                     loop cy
  48.             er : ; Для строчки из нуля символов
  49.     }
  50.     cout <<"В введённой строке в "<<n<<" словах встречается буква А."<< endl;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement