Попытка создать своего рода средство проверки Palindrome, и один из процессов включает в себя обращение массива. Пользователь вводит количество символов для ввода, вводит символы один за другим, и сам код определит, является ли это палиндромом (те же слова, когда они перевернуты, гоночная машина пишется наоборот гоночная машина). Проблема в том, что мне нужно перевернуть массив, чтобы создать условие, но вместо этого мои коды перевернули оба моих массива. Ниже приведены коды.
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
int no = 0, j, palin = 1;
char in, temp;
stack <char> s, h;
cout << "Enter amount of characters: ";
cin >> no;
string kimak, rord, gah;
for (int i = 0; i < no; i++) {
cout << "Enter word no." << (i + 1) << ": ";
cin >> in;
s.push(in);
}
for (int i = 0; i < no; i++) {
kimak[i] = s.top();
rord[i] = s.top();
s.pop();
}
j = no - 1;
for (int i = 0; i < j; i++, j--) { // reverses array
temp = rord[i];
rord[i] = rord[j];
rord[j] = temp;
}
cout << "Ordered No. ";
for (int i = 0; i < no; i++) {
cout << kimak[i] << "\n";
}
cout << "\nReversed No. ";
for (int i = 0; i < no; i++) {
cout << rord[i] << "\n";
}
for (int i = 0; i < no; i++) {
if (kimak[i] != rord[i]) {
palin = 0;
}
}
if (palin == 1) {
cout << "Palindrome No. : YES";
}
if (palin == 0) {
cout << "Palindrome No. : NO";
}
}