Форум программистов, компьютерный форум CyberForum.ru

Проверить является ли слово палиндромом - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.72
Нубик_я
0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 22
11.05.2012, 21:41     Проверить является ли слово палиндромом #1
Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом).
есть наброски кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void main()
{
    int i,j=0;
    string s,s2;
    cout<<"vvedite slovo\n";
    getline(cin,s);
for (i=s.length()-1;i>=0;i--)
s2[j++]=s[i];
if (memcmp(s, s2, strlen(s)) == 0)
cout<<"palindrom";
else
cout<<"ne palindrom";
getch();
}
выскакивает ошибка связанная с memcmp "memcmp: невозможно преобразовать параметр 1 из 'std::string' в 'const void *'" помогите исправиться или предложите другое решение пожалуйста)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
11.05.2012, 21:54     Проверить является ли слово палиндромом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 
int main()
{
    char w[20];
    std::cout << " -> ";
    std::cin.getline(w, sizeof w);
 
    if(!std::cin) return 1;
 
    for(size_t i = 0, j = std::strlen(w) - 1; i < j; ++i, --j)
    {
        if(w[i] != w[j])
        {
            std::cout << "no\n";
            return 0;
        }
    }
 
    std::cout << "yes\n";
}
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
11.05.2012, 21:55     Проверить является ли слово палиндромом #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using namespace std;
 
int main(void)
{
    string str, tmp;
    cout << "enter str: ";
    cin >> str;
    tmp = str;
    reverse(str.begin(), str.end());
    if (str == tmp)
        cout << "YES";
    else
        cout << "NO";
    return 0;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
11.05.2012, 22:00     Проверить является ли слово палиндромом #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
cout << (equal(str.begin(), str.end(), str.rbegin()) ? "yes\n" : "no\n");
Yandex
Объявления
11.05.2012, 22:00     Проверить является ли слово палиндромом
Ответ Создать тему
Опции темы

Текущее время: 17:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru