Нужно найти символ в строке - 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;
        }
должно искать элемент и в r должен быть массив индексов этого элемента в строке s Помогите с кодом, что-то не так... что-то в коде ассемблера. Спасибо заранее

Решение задачи: «Нужно найти символ в строке»

textual
Листинг программы
int* buff = new int[n];
srch(&s,c,*buff)

Объяснение кода листинга программы

В данном коде выполняется поиск символа 'c' в строке 's' с использованием цикла. Вот список действий:

  1. int* buff = new int[n]; - создается массив buff типа int с размером n.
  2. srch(&s,c,*buff) - вызывается функция srch, которая принимает три аргумента: строку s, символ c и начальный адрес массива buff.
  3. В функции srch происходит итеративный поиск символа c в строке s с использованием цикла.
  4. Каждое значение в массиве buff присваивается соответствующему символу строки s.
  5. Если символ c найден в строке s, то возвращается его индекс. Если символ не найден, то возвращается -1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы