Napisz program w C++ który umożliwi wpisanie wyrazu z klawiatury. Program wypisze wyraz na ekranie, następnie wypisze nowy wyraz w odwróconej kolejności.   Na końcu program sprawdzi, czy napis wprowadzony z klawiatury jest palindromem​

Odpowiedź :

Odpowiedź:

#include <iostream>

#include <string>

#include <algorithm>

int main() {

   std::string word, word2;

   std::cin >> word;

   std::cout << word << std::endl;

   word2 = word;

   std::reverse(word2.begin(), word2.end());

   std::cout << word2 << std::endl;

   if (word == word2) {

       std::cout << word << " to palindrom\n";

   } else {

       std::cout << word << " to nie jest palindrom\n";

   }

   return 0;

}

Wyjaśnienie:

Odpowiedź

Postanowiłam napisać tak by działało normalnie, czyli aby na przykład można było napisać  żółć  albo  Україна.  Napisałam wersję uproszczoną w której można pisać podstawowymi literami z alfabetów łacińskiego, greckiego, arabskiego i cyrylicy, ale nie można napisać na przykład  €.  Akurat ten znak zajmuje trzy bajty i musiałoby być jeszcze jedno  if.  Natomiast żeby program działał dla wszystkich znaków zdefiniowanych w Unicode musiałabym dać trzecie  if,  aby uwzględnić znaki zapisywane na czterech bajtach.

Kod źródłowy jest w pierwszym załączniku. W drugim podałam jak wyglądają przykładowe wyniki uruchomienia.

Przykładowe wyniki uzyskałam na platformie replit. Takie same są przy użyciu  OnlineGDB  oraz g++ (GCC).

Przetestowałam używając Code::Blocks,  Dev-C++,  OnlineGDB,  Visual Studio  oraz  g++  pod Linuxem.

Wyjaśnienie

Oczywiście jeżeli Twoja platforma (program, środowisko) nie obsługuje wprowadzania polskich znaków z konsoli, to polskich znaków w wynikach nie będziesz widział. Na przykład używając Code::Blocks,  Dev-C++  i  Visual Studio  można tylko wprowadzić  literę  ó.  Z kolei  cpp.sh przestanie działać przy próbie wprowadzenia jakiegokolwiek znaku spoza ASCII.

Zobacz obrazek 0AB
Zobacz obrazek 0AB