Готовый код поиска палиндромов - 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;
}

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

  1. В функции is_it определены две переменные head и tail.
  2. Переменная tail итерируется по строке s до тех пор, пока не достигнет конца строки.
  3. Переменная head итерируется по строке s с обоих концов до тех пор, пока не окажется в середине строки.
  4. Если символы, на которых находятся head и tail, не совпадают, то функция возвращает false.
  5. Если все символы в середине строки совпадают, то функция возвращает true.
  6. В функции main определена буферная переменная buf типа char с размером в 1024 байта.
  7. Пользователю предлагается ввести слово, которое будет храниться в переменной buf.
  8. Далее пользователю выводится сообщение о том, является ли введенное слово палиндромом или нет.
  9. Функция is_it вызывается с аргументом buf, результат сохраняется в переменной типа bool и выводится на экран.
  10. Программа завершается с кодом 0, что означает успешное выполнение.

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


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

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

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