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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти минимальный из элементов ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы http://www.cyberforum.ru/cpp-beginners/thread1066063.html
Найти минимальный из элементов в области ,ниже главной и выше побочной диагонали и поменять его местами с первым элементом матрицы.B
C++ Описать функции ввода с клавиатуры элементов одномерного массива Описать функции ввода с клавиатуры элементов одномерного массива и подсчета произведения элементов массива V , значения которых совпадают с их номерами, например: V=3 http://www.cyberforum.ru/cpp-beginners/thread1066058.html
Что такое SDK и как с ним работать? C++
1) что такое вообще SDK для IP камер: что-то вроде получение доступа (полномочий) к настройкам или какое-то ПО для получения этого доступа или что-то другое ? 2) если же это просто доступ к...
Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g C++
Здравствуйте! Возникла такая проблема, никак не могу докопаться до решения... Задание звучит так: " Дан текстовый файл f. Слова в файле разделены одним или группой пробелов. Удалить из файла все...
C++ Отсортировать и вывести по возрастанию решения для квадратных уравнений http://www.cyberforum.ru/cpp-beginners/thread1066047.html
#include "stdafx.h" #include "math.h" #include <iostream> using namespace std; class N { public: virtual void input ()=0; virtual void output ()=0; virtual float res ()=0;
C++ дописать программу #include <cstdlib> #include <iostream> #include <Math.h> using namespace std; int main(int argc, char *argv) { setlocale( LC_ALL,"Russian" ); ... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
09.01.2014, 18:25
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
#include <iostream>
#include <string>
#include <algorithm>
#include <utility>
#include <iterator>
#include <locale>
 
bool is_palindrome(const std::string &str)
{
    return str.size()
        ? std::equal(str.begin(), std::next(str.begin(), str.size()/2), str.rbegin())
        : false;
}
 
void check(const std::string &str)
{
    std::string res;
    std::locale loc;
    using namespace std::placeholders;
    std::copy_if(str.begin(), str.end(), std::back_inserter(res),
                 std::bind(std::not2(std::equal_to<char>()), _1, ' '));
    std::transform(res.begin(), res.end(), res.begin(), std::bind(std::tolower<char>, _1, loc));
    std::cout << "Test [" << str << "]: " << std::boolalpha << is_palindrome(res) << "\n";
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string tests[] = {
        "А роза упала на лопу азора"
    };
 
    std::for_each(std::begin(tests), std::end(tests), check);
 
    std::string str;
    while (std::getline(std::cin, str)) check(str);
}
Tulosba, Evg, Ппц, std::tolower не могу заставить с русским работать.

Добавлено через 8 минут
http://www.monkeycoder.co.nz/Community/posts.php?topic=7631 тут чувак разобрался как заставить std::tolower работать с русской локалью.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru