Нужно найти символ в строке - Assembler
Формулировка задачи:
#include "stdafx.h" #include <iostream> #include "stdafx.h" #include <iostream> void srch(char *s, int n, int type, char c){ int *r=new int[n]; std::cout<<"\n"<<n<<"\n"; for(int i=0;i<n;i++){r[i]=0;} switch (type){ case 1:{ //Поиска всех вхождений символа в строке. Результат – в виде массива индексов, где встречен искомый элемент. __asm{ pushad mov al, c mov ebx, n mov ecx, 0 mov edi, 0 mov edx, 0 start_cycle1: cmp ecx, ebx jg end_cycle1 mov edx,s[ecx] cmp dl,al jne q1 mov r[edi], ecx inc edi q1: inc ecx; jmp start_cycle1 end_cycle1: mov n, edi popad } std::cout<<"\n indexes vhojdeniia: "; for(int i=0;i<n;i++) std::cout<<r[i]<<" "; break; }
Решение задачи: «Нужно найти символ в строке»
textual
Листинг программы
int* buff = new int[n]; srch(&s,c,*buff)
Объяснение кода листинга программы
В данном коде выполняется поиск символа 'c' в строке 's' с использованием цикла. Вот список действий:
int* buff = new int[n];
- создается массивbuff
типаint
с размеромn
.srch(&s,c,*buff)
- вызывается функцияsrch
, которая принимает три аргумента: строкуs
, символc
и начальный адрес массиваbuff
.- В функции
srch
происходит итеративный поиск символаc
в строкеs
с использованием цикла. - Каждое значение в массиве
buff
присваивается соответствующему символу строкиs
. - Если символ
c
найден в строкеs
, то возвращается его индекс. Если символ не найден, то возвращается -1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д