Есть код, который выявляет, является ли фраза или слово палиндромом, есть такой код
#include "stdafx.h"
#include "locale.h"
#include <iostream>
#include "windows.h"
using namespace std;
char slovo[80], prov[80] = { 0 };
int t = 0, i = 0, a, z=0, o=0;
char* netprobelam(char *slovo)
{
do
{
if (slovo[z] == ' ') {
o = z;
z--;
do
{
slovo[o] = slovo[o + 1];
} while (slovo[o] != '\0');
}
z++;
} while (slovo[z] != '\0');
return slovo;
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");
cin >> slovo;
do
{
t++;
} while (slovo[t] != '\0');
a = t;
t = a - 1;
netprobelam(slovo);
system("pause");
do
{
prov[i] = slovo[t];
i++;
t--;
} while (t != -1);
t = 0;
i = i - 1;
do
{
t++;
i--;
} while (slovo[t] == prov[i]);
if ((t - 1) == a)
{
cout << "Выполняется\n";
}
else
{
cout << "Не выполняется\n";
}
system("pause");
}
проблема в том, что функция не заменяет все буквы на следующие, а лишь обрубает слово до первого пробела, прошу помощи.
cin >> slovo;
работает именно так - до первого пробела. Попробуйте getline
getline(cin, slovo);
только slovo
сделайте string
, а не массив.
Ну, или
cin.getline(slovo,80);
если нужен именно массив.
P.S. Но, откровенно говоря, код надо бы переписывать, как говорится, от слова "совсем"...
Например, так:
bool isPalindrome(const char * s)
{
for(const char * b = s, *e = b + strlen(s) - 1; b <= e; ++b, --e)
{
while(*b == ' ') ++b;
while(*e == ' ') --e;
if (*b != *e) return false;
}
return true;
}
int main(int argc, const char * argv[])
{
string s;
getline(cin,s);
cout << "\"" << s << "\" is "
<< (isPalindrome(s.c_str()) ? "" : "not ") << "palindrome\n";
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите ,пожалуйста, реализовать близкую реализацию функции at()У меня существует класс для хранения массива типа char и мне нужно реализовать...
Мне необходимо скомпилировать и запустить простейший код на C++ под ARMПытаюсь сделать:
При вызове конструктора копий указатели ссылаются на один и тот же указательИ при вызове деструктора повторное удаление указателя
Доброго времени суток! Можете привести пример тривиального хеширования? В интернете не смогла найти никакой понятной информации