Advertisement
Guest User

Untitled

a guest
Sep 30th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.18 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int main() {
  4. // Полиндром:
  5.     std::string word; // объявляем переменную строки
  6.     std::cout << "Enter word: " << std::endl;
  7.     std::cin >> word; // вводим строку
  8.     std::string tolowerWord; // в эту переменную мы запишем ту же строку но в нижнем регистре
  9.     std::string clearWord; // в эту переменную будем записывать все нужные символы
  10.     unsigned long len = word.length(); // находим длину строки, це нужно для цикла
  11.     int isPolindrom = 1; // инициализируем флаг, изначально мы считаем, что слово является полиндромом
  12.     int i = 0; // инициализируем итератор
  13.     int j = 0;
  14.     for (i=0; i < len; ++i) //сначала преведем все символы к одному регистру
  15.     {
  16.         tolowerWord += (char)tolower(word[i]);
  17.     }
  18.     std::string currentWords; // переменная в которой храняться допустимые символы
  19.     currentWords = std::to_string('qwertyuiopasdfghjklzxcvbnm1234567890'); //список допустимых символов, здесь ток маленькие буквы так как мы приводим все к нижниму регистру
  20.     for (i=0; i < len; ++i){ // запускаем цикл по всем символом строки с нижним регистром
  21.         for(j=0; j < currentWords.length(); j++) // запускаем цикл по всем допустимым символам
  22.         {
  23.             if(tolowerWord[i] == currentWords[j]){ // если символ из строки равен допустимому символу, то добавляем его в чистую строку
  24.                 clearWord += tolowerWord[i];
  25.             }
  26.         }
  27.     }
  28.     len = clearWord.length();
  29.     for(i = 0; i < len/2; ++i) // начинаем цикл с первого символа и до середины слова(до середины так как мы проверяем итый символ и итый с конца одновременно)
  30.     {
  31.         if (clearWord[i] != clearWord[len-i-1]) // если у нас не совпадает (итый) и (итый с конца элемент), значит слово не полиндром
  32.         {
  33.             isPolindrom = 0; // изменяем флаг
  34.             std::cout << (int)clearWord[i];
  35.         }
  36.     } // если все символы совпали, то слово полиндром, мы не меняем флаг, так как изначально мы решили что слово и есть полиндром
  37.     if (isPolindrom == 1) // если флаг не тронут, значит слово полиндром
  38.     {
  39.         std::cout << "1" <<std::endl;
  40.     }
  41.     else // если флаг был изменен - значит какие-то из символов не совпали, слово не полиндром
  42.     {
  43.         std::cout << "0" <<std::endl;
  44.     }
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement