3 / 3 / 2
Регистрация: 19.03.2011
Сообщений: 72
|
|
1 | |
Вывод подстрок (не очень сложно)10.06.2011, 22:45. Показов 1172. Ответов 7
Метки нет Все метки)
(
как вывести все подстроки заданной строки?
типа есть строка "aaa bbb ccc ddd" нужно вывести aaa aaa bbb aaa bbb ccc aaa bbb ccc ddd bbb bbb ccc bbb ccc ddd ccc ccc ddd ddd у меня не вращается мозг как к этому приступить - допустим пробел можно найти repe scasb(scasw), записать его положение, потом вывести все с начала строки до этого пробела, но как к следующему пробелу перейти? сделать сравнение на количество совпадений, или как то проще можно? помогите пожалуйста! подскажите в какую сторону нужно думать, а то начать не получается...
0
|
|
10.06.2011, 22:45 | |
Ответы с готовыми решениями:
7
Очень сложно Очень сложно задачи, очень сложно Работа с числами,не очень сложно |
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,906
|
|
11.06.2011, 11:50 | 2 |
Я бы организовал массив указателей (индексов), в который заносятся начала токенов. Для данного случая было бы что-то типа 0,4,8,12
найти можно с помощью того же rep scasb. В cx загнать длину строки, и в цикле пока сх!=0 каждое срабатывание rep scasb будет давать новый индекс (указатель) Затем делается двойной цикл внешний по i=0 до i<кол-ва токенов внутренний по j=i до j<кол-ва токенов и выводится фраза начиная с i-го токена до j-того Грубо, но как-то так
0
|
3 / 3 / 2
Регистрация: 19.03.2011
Сообщений: 72
|
|
11.06.2011, 12:17 [ТС] | 3 |
alexcoder, я без сомнения дебил, но посвятите пожалуйста - как находится не первый пробел? хотя бы чтоб занести в массив
0
|
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,906
|
||||||
11.06.2011, 12:25 | 4 | |||||
Код не проверял, скорей всего есть ошибки!!!!!!!:
0
|
3 / 3 / 2
Регистрация: 19.03.2011
Сообщений: 72
|
|
11.06.2011, 12:57 [ТС] | 5 |
alexcoder, позволь спрошу, что делают эти строки:
mov [bx],offset string (почему в квадратных скобочках и уточнение - offset типа указатель на строку?) test cx,cx (что есть ф-ция test?)
0
|
16 / 16 / 1
Регистрация: 11.06.2011
Сообщений: 35
|
|
11.06.2011, 13:09 | 6 |
Команда:
TEST приемник, источник Назначение: Логическое сравнение Процессор: 8086 Вычисляет результат действия побитового «логического И» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и устанавливает флаги SF, ZF и PF в соответствии с полученным результатом, не сохраняя результат (флаги OF и CF обнуляются, значение AF не определено). TEST, так же как и СМР, используется в основном в сочетании с командами условного перехода (Jcc), условной пересылки данных (CMOVcc) и условной установки байт (SETcc). (C) Зубков Команда: LEA приемник, источник Назначение: Вычисление эффективного адреса Процессор: 8086 Вычисляет эффективный адрес источника (переменная) и помещает его в приемник (регистр). С помощью LEA можно вычислить адрес переменной, которая описана сложным методом адресации, например по базе с индексированием. Если адрес 32-битный, а регистр-приемник 16-битный, старшая половина вычисленного адреса теряется, если наоборот, приемник 32-битный, а адресация 16-битная, то вычисленное смещение дополняется нулями. (C) Зубков Offset почти тоже, что и LEA,Tasm заменяет LEA на MOV...OFFSET. MOV...OFFSET короче LEA, поэтому в режиме SMART tasm заменяет LEA на MOV для тех случаев, когда это возможно: lea di,Array mov di,offset Array Но такая замена возможна не всегда: lea di,Array[si+bx.FieldName] Логика работы LEA в данном случае эквивалентна такому фрагменту: mov di,offset Array add di,si add di,bx add di,FieldName Результат этого фрагмента не может быть вычислен на этапе компиляции из-за неизвестных величин, а следовательно, LEA в данном случае не может быть заменена командой MOV...OFFSET (С) Один из первых сайтов, выданных гуглом
1
|
3 / 3 / 2
Регистрация: 19.03.2011
Сообщений: 72
|
|
11.06.2011, 13:15 [ТС] | 7 |
Квент, спасибо. Значит не умею вопросы поисковику правильно задавать, т.к. не нашел (хотя искал по яндексу, но пох)
0
|
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
|
||||||
14.06.2011, 20:18 | 8 | |||||
Вот рабочий код.
0
|
14.06.2011, 20:18 | |
14.06.2011, 20:18 | |
Помогаю со студенческими работами здесь
8
With recursive update postgres очень сложно Нахождение чисел в матрице. Очень сложно Mikrotik раздача инета все очень сложно) Линк на страницу HTML, при работе с if endif (всё очень сложно) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |