Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка строк в асме

32K
26 октября 2007 года
rozochka
1 / / 26.10.2007
Задание: Оставить в строке фрагменты, симметричные центрального символа, длиной более 5 символов (например, “dcbabcd”), остальные символы заменить на пробелы.

Я написала код на С++, а на асме никак не получается

Код:
#include <iostream>
#include <ctype.h>
#include <string>
using namespace std;

int main()
{
    cout << "input string\n";
    string str;
    char c;
    do      //посимвольный ввод строки
    {
        c = getchar();
        str += c;
    }
    while (isprint(c));     //пока цифра, буква или пробел
    for (int i = 0; i < str.length(); ++i)  //проход строки
    {
        int j = i;
        while (isgraph(str))    //цифра или буква
        {
            ++i;
        };
        if ((i - j < 5) || !((i - j) % 2))
        //если слово собдержит менее 5 симв. или его длина четна
        {
            for (; j < i; str[j] = ' ', ++j);   //забить пробелами
            continue;
        };
        int k = 0;
        while ((k < (i-j)/2) && (str[j + k] == str[i - 1 - k]))
        //проверка симметричности
            ++k;
        if (k != (i-j)/2)  
        //если остановились раньше центрального символа
        {
            for (; j < i; str[j] = ' ', ++j);   // забиваем пробелами
            continue;
        };
    };
    cout << str;
    getchar();
    return (0);
};


помогите, пожалуйста, перевести на ассемблер
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог