Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char first[100];
- cout<< "Введите строку, состоящую из заглавных английских букв"<<endl;
- cin.getline(first, sizeof(first));
- //cout << first << endl;
- int lfirst = 0;
- int n = 0;
- __asm {
- lea edi, first
- l1 :
- cmp[edi], 0; '\0'
- je _l1
- inc[lfirst]
- inc edi
- jmp l1
- _l1 :
- ; узнали длину, занесли в lfirst
- mov ecx, [lfirst]; в счётчик заносим длину
- cmp ecx, 0
- je er
- xor edx, edx; обнуляем, в edx храним количество встреченных А для одного слова
- lea edi, first; заносим адрес строчки
- cy:
- cmp[edi], 'A'; если символ = А, то увеличиваем наш счётчик edx
- jne ou
- inc edx
- jmp fin
- ou : ; символ не А
- cmp[edi], ' '; сравниваем символ с пробелом
- jne fin
- p:
- cmp edx, 0; сравниваем с нулём
- je finfin; если равен, то выходим, а иначе
- inc[n]; увеличиваем n, в которой хранится количество слов, содержащих А
- xor edx, edx; т.к edx - счётчик для одного слова, то в конце слова мы этот счётчик обнуляем
- jmp finfin
- fin:
- cmp ecx, 1
- je p; для последнего символа тоже надо проверить счётчик
- finfin:
- inc edi
- loop cy
- er : ; Для строчки из нуля символов
- }
- cout <<"В введённой строке в "<<n<<" словах встречается буква А."<< endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement