С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Проверить, является ли строка, введённая с клавиатуры, палиндромом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать характер ошибки? http://www.cyberforum.ru/cpp-beginners/thread18714.html
Как узнать характер ошибки при открытии файла - например, если файл просто не найден или не существует или ошибка при открытии?
C++ Задачка с одномерным массивом.Найти количество удвоенных нечётных чисел Помогите пожалуйста. Вот текст задания: Даны целые числа a1,a2..an.Известно что a1>0 и что среди a2..an есть хотя бы одно отрицательное число.Пусть a1,a2..an члены данной последовательности.(N... http://www.cyberforum.ru/cpp-beginners/thread18707.html
Дан текстовый файл открыть его удалить из него все пробелы C++
Мне нужно решить такую задачу дан текстовый файл открыть его удалить из него все пробелы причем местоположение пробелов записать в другой файл, чтобы можно то удалять все пробелы то снова их...
Задание по С++ C++
вот задание - Дана непустая последовательность неотрицательных чисел, записанных в семеричной системе счисления. Напечатать в десятичной системе наибольшее из них. Проконтролировать правильность...
C++ с++ http://www.cyberforum.ru/cpp-beginners/thread18681.html
помогите бедной девушке решить задачи по с++!!! 1. даны 2 действительных числа. удвоить первое число, если оно меньше второго, в остальных случаях оставить числа без изменений. 2. найти суммму всех...
C++ Задача на Метод сортировки (Слияние) Здравствуйте! Прошу пожалуйста помочь сделать зачетную работу на С++. Задание: Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента (в примере... подробнее

Показать сообщение отдельно
uper
0 / 0 / 1
Регистрация: 14.10.2014
Сообщений: 10

Проверить, является ли строка, введённая с клавиатуры, палиндромом - C++

17.12.2008, 07:32. Просмотров 1235. Ответов 1
Метки (Все метки)

ЗАдание следующее:

Написать программу, которая проверяет, является ли строка, введённая с клавиатуры палиндромом.
Строка может содержать буквы разных регистров, пробелы и другие символы.
При проверке должны учитываться только символы, являющиеся буквами. При этом не важно, к какому регистру принадлежит буква.

Решение(скопил у одногруппницы):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include<iostream>
#include<string>
using namespace std;
bool IsBukva(char symbol)
{
switch(symbol)
{
case'a':return 1;break;
case'b':return 1;break;
case'c':return 1;break;
case'd':return 1;break;
case'e':return 1;break;
case'f':return 1;break;
case'g':return 1;break;
case'h':return 1;break;
case'i':return 1;break;
case'j':return 1;break;
case'k':return 1;break;
case'l':return 1;break;
case'm':return 1;break;
case'n':return 1;break;
case'o':return 1;break;
case'p':return 1;break;
case'q':return 1;break;
case'r':return 1;break;
case's':return 1;break;
case't':return 1;break;
case'u':return 1;break;
case'v':return 1;break;
case'w':return 1;break;
case'x':return 1;break;
case'y':return 1;break;
case'z':return 1;break;
case'A':return 1;break;
case'B':return 1;break;
case'C':return 1;break;
case'D':return 1;break;
case'E':return 1;break;
case'F':return 1;break;
case'G':return 1;break;
case'H':return 1;break;
case'I':return 1;break;
case'J':return 1;break;
case'K':return 1;break;
case'L':return 1;break;
case'M':return 1;break;
case'N':return 1;break;
case'O':return 1;break;
case'P':return 1;break;
case'Q':return 1;break;
case'R':return 1;break;
case'S':return 1;break;
case'T':return 1;break;
case'U':return 1;break;
case'V':return 1;break;
case'W':return 1;break;
case'X':return 1;break;
case'Y':return 1;break;
case'Z':return 1;break;
default:return 0;
}
}
char LowReg(char symbol)
{
switch(symbol)
{
case'A':return'a';break;
case'B':return'b';break;
case'C':return'c';break;
case'D':return'd';break;
case'E':return'e';break;
case'F':return'f';break;
case'G':return'g';break;
case'H':return'h';break;
case'I':return'i';break;
case'J':return'j';break;
case'K':return'k';break;
case'L':return'l';break;
case'M':return'm';break;
case'N':return'n';break;
case'O':return'o';break;
case'P':return'p';break;
case'Q':return'q';break;
case'R':return'r';break;
case'S':return's';break;
case'T':return't';break;
case'U':return'u';break;
case'V':return'v';break;
case'W':return'w';break;
case'X':return'x';break;
case'Y':return'y';break;
case'Z':return'z';break;
default:return symbol;
}
}
string CleanString(string input)
{
string output;
string temp;
int i;
for (i=0;i<=input.length()-1;i++)
{
if (IsBukva(LowReg(input.at(i))))
{
temp = LowReg(input.at(i));
output.append(temp,0,1);
}
}
return output;
}
bool palindrom(string output)
{
int i;
for(i=0;i<=output.length()-1;i++)
{
if(output.at(i)!=output.at(output.length()-i-1))
return 0;
}
return 1;
}
void main()
{
 
string stroka;
cout<<"Vvedi stro4ku: ";
cin>>stroka;
cout<<palindrom(CleanString(stroka))<<'\n';
}
Объясните плиз что там происходит в программе, а то мне надо преподу будет рассказать. Ребят, очень прошу, программирование не профильный предмет, но сдавать все равно его как-то надо...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.