 
Напишите пожалуйста код для c++ Строка содержит цифры, буквы и незначительные символы (пробел,
'+', '-', '!', '@', '#', '$', '%', '^' , '&' , '?' , '*', '(', ')' , '/', '[', ']', '{', '}', '<', '>'). Проверить, является ли он палиндромом без учета незначимых символов. Палиндром, оборотень, рак лит. налево). Входные данные Программа считывает строку символов с клавиатуры. Исходные данные Программа выводит на экран TRUE, если данная строка является палиндромом, FALSE – в противном случае. Примеры входящих и исходящих данных Введение: +++897$%$#* [email protected]@ Вывод: TRUE Введение: Zxc***----5%%cx^^^z Вывод: FALSE 0
        0
         0
        0
    Ответы на вопрос
 
        #include <iostream>
#include <string>
#include <cctype>
using namespace std;
signed main() {
string line, buff = "";
bool isPalindrome = true;
getline(cin, line);
for (int i = 0; i < line.size(); i++) {
if (isalnum(line[i]))
buff += line[i];
}
for (int i = 0; i < buff.size() / 2; ++i)
{
if (buff[i] != buff[buff.size() - i - 1])
{
isPalindrome = false;
break;
}
}
if (isPalindrome)
cout << "TRUE";
else
cout << "FALSE";
return 0;
}
 0
                    0
                     0
                    0
                 
            Вот пример кода на C++, который выполняет проверку, является ли введенная строка палиндромом без учета незначимых символов:
```cpp
#include 
bool isPalindrome(const std::string& str) { // Функция для проверки, является ли символ значимым auto isSignificant = [](char c) { return std::isalnum(c) || c == ' ' || c == '+' || c == '-' || c == '!' || c == '@' || c == '#' || c == '$' || c == '%' || c == '^' || c == '&' || c == '?' || c == '*' || c == '(' || c == ')' || c == '/' || c == '[' || c == ']' || c == '{' || c == '}' || c == '<' || c == '>'; };
// Создаем новую строку, содержащую только значимые символы std::string filteredStr; for (char c : str) { if (isSignificant(c)) { filteredStr += std::tolower(c); // Приводим к нижнему регистру для учета регистра } }
// Проверяем, является ли отфильтрованная строка палиндромом int left = 0; int right = filteredStr.length() - 1; while (left < right) { if (filteredStr[left] != filteredStr[right]) { return false; } ++left; --right; }
return true; }
int main() { // Ввод строки с клавиатуры std::cout << "Введите строку: "; std::string input; std::getline(std::cin, input);
// Проверка и вывод результата if (isPalindrome(input)) { std::cout << "TRUE" << std::endl; } else { std::cout << "FALSE" << std::endl; }
return 0; } ```
Пример ввода: ``` Введите строку: 897$%$#*+@! ``` Вывод: ``` TRUE ```
Пример ввода: ``` Введите строку: Zxc***----5%%cx^^^z ``` Вывод: ``` FALSE ```
Этот код преобразует введенную строку, удаляя все незначимые символы и приводя оставшиеся символы к нижнему регистру. Затем он проверяет, является ли полученная строка палиндромом.
 0
                    0
                     0
                    0
                Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
- 
			Математика 
- 
			Литература 
- 
			Алгебра 
- 
			Русский язык 
- 
			Геометрия 
- 
			Английский язык 
- 
			Химия 
- 
			Физика 
- 
			Биология 
- 
			Другие предметы 
- 
			История 
- 
			Обществознание 
- 
			Окружающий мир 
- 
			География 
- 
			Українська мова 
- 
			Информатика 
- 
			Українська література 
- 
			Қазақ тiлi 
- 
			Экономика 
- 
			Музыка 
- 
			Право 
- 
			Беларуская мова 
- 
			Французский язык 
- 
			Немецкий язык 
- 
			МХК 
- 
			ОБЖ 
- 
			Психология 
- 
			Физкультура и спорт 
- 
			Астрономия 
- 
			Кыргыз тили 
- 
			Оʻzbek tili 
 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			 
			