Готовый код поиска палиндромов - C (СИ)
Формулировка задачи:
Вот сделал задачку, мб кому пригодится)
Если кому решение покажется не рациональным, поправьте.
#include "stdafx.h" #include "conio.h" #include "string.h" #include <iostream> using namespace std; void reversit(char s[]) { int len = strlen(s); for(int j = 0;j <len/2;j++) { char temp = s [j]; s [j] = s [len-j-1]; s [len-j-1] = temp; } } int _tmain(int argc, _TCHAR* argv[]) { char src[80]={"a roza upala na lapu azora"}; char dest[80]; char rvs[80]; int i, j; printf("wait..."); if((src, sizeof(src), stdin) == NULL || *src == '\n') return 1; for(i = j = 0; src[i] != '\0'; i++) if(src[i] != ' ') { dest[j++] = src[i]; dest[j] = '\0';} //printf("Getted uyhgf %s\n", src); //strcmp(src,dest); strncpy(rvs,dest,70); reversit(rvs); if(strcmp(rvs,dest)==0) printf("KANAET \n"); //strcmp(src,dest); _getch(); return 0; }
Решение задачи: «Готовый код поиска палиндромов»
textual
Листинг программы
#include <iostream> bool is_it(const char * s){ const char * head, * tail; for ( tail = s; *tail; ++tail ) ; for ( head = s, --tail; head < tail; ++head, --tail ) if ( *head != *tail ) return false; return true; } int main(){ char buf[1024]; std::cout << "Word: "; std::cin >> buf; std::cout << "is " << ( is_it(buf) ? "" : "not " ) << "a palindrom." << std::endl; return 0; }
Объяснение кода листинга программы
- В функции
is_it
определены две переменныеhead
иtail
. - Переменная
tail
итерируется по строкеs
до тех пор, пока не достигнет конца строки. - Переменная
head
итерируется по строкеs
с обоих концов до тех пор, пока не окажется в середине строки. - Если символы, на которых находятся
head
иtail
, не совпадают, то функция возвращаетfalse
. - Если все символы в середине строки совпадают, то функция возвращает
true
. - В функции
main
определена буферная переменнаяbuf
типаchar
с размером в 1024 байта. - Пользователю предлагается ввести слово, которое будет храниться в переменной
buf
. - Далее пользователю выводится сообщение о том, является ли введенное слово палиндромом или нет.
- Функция
is_it
вызывается с аргументомbuf
, результат сохраняется в переменной типаbool
и выводится на экран. - Программа завершается с кодом 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д