Нужно в течение часа решить задачу, кто поможет с меня плюсенгов... Ввести строку, состоящую из одного слова, проверить будет ли оно читаться одинаково справа на лево и слева на право (т.е. является ли оно палиндромом). Исходную строку и ответ вывести на экран.
пробуй Code: #include <conio.h> #include <stdio.h> void main() {char s1[100],s2[100]=""; unsigned int ks1 = int(s1),ks2 = int(s2); unsigned int l,r; clrscr(); gets(s1); asm{ mov dx,0 mov bx, ks1 dec bx } l0: asm{ inc bx mov cx, bx mov ah, [bx] cmp ah,0 je fin mov al,[bx+1] cmp al,0 je fin } l1: asm{ mov al, [bx] cmp al, 32 je l2a cmp al,0 je l2a inc bx jmp l1 } l2a: asm{ push bx push cx dec bx mov r,bx mov l,cx push ax } l2a1: asm{ mov bx,r mov cx,l mov ah,[bx] mov bx,cx mov al,[bx] cmp bx,cx jna l2a2 cmp ah,al jne l2a2 dec r inc l jmp l2a1 } l2a2: asm{ cmp ah,al jne l4 pop ax cmp al,0 je fin pop cx pop bx jmp l0 } l4: asm{ pop ax pop bx pop cx inc cx } l3: asm{ push bx mov bx, ks2 add bx,dx mov [bx],ah inc dx pop bx inc bx mov ah,[bx] cmp bx,cx jne l3 dec bx cmp ah,0 jne l0 } fin: printf("%s",s2); } else http://phorum.key.ru/viewtopic.php?f=34&t=34754 http://forum.woweb.ru/topic29962.html http://devoid.com.ua/functions-about/c-functions/strrev.html http://sourcecore.net/forums/viewtopic.php?p=4550&sid=cb5fdffbe787b000f206dd4b8a1af74c http://phorum.key.ru/viewtopic.php?t=32218 http://kitnet.s42.asu.ru/www/olimp/asm/z3/z3.htm money http://foxweb.net.ru/files/?arc=1
На си если то вот как то так (криво но пашет- строка проверяется не до середины а в 2 стороны поностью - не оптимально! Зато быстро ) #include "stdio.h" #include "string.h" void main(int argc, char* argv[]) { if(argc==1) { printf("USE: polindrom.exe string.\r\n"); } else { char * str = argv[1]; int i; int Sz=(strlen(str)); for(i=0;i<=Sz;i++) { if(str!=str[(Sz-1)-i]) { printf("Its not a polindrom :-("); return; } } printf("Its a polindrom "); } }