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

Сортировка русского алфавита с буквой ё - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан массив вещественных чисел. Вычислить сумму положительных и произведение четных элементов массива http://www.cyberforum.ru/cpp-beginners/thread744551.html
1) Дан массив вещественных чисел а1, ..., аn. Вычислить сумму положительных и произведение четных элементов массива, если положительных элементов нет, то выдать сообщение.
C++ Делаю лабораторную работу, написал код программы, принцип думаю верен, а вот с синтаксисом проблемы. Помогите исправить ошибки делаю лабораторную, написал код программы (принцип думаю верен, а вот с синтаксисом проблемы). Условие отправил в ворде. #include "stdafx.h" #include <string.h> #include <iostream> #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> double my_function(double x, double eps) { http://www.cyberforum.ru/cpp-beginners/thread744548.html
C++ Дана последовательность из n целых чисел. Найти сумму четных элементов этой последовательности
1. Дана последовательность из n целых чисел. Найти сумму четных элементов этой последовательности.
Распечатать информацию о поездах, движущихся в заданный конечный пункт C++
В файле хранится информация о движении поездов : номер поезда, маршрут движения, время прибытия, время отправления. Необходимо распечатать информацию о поездах, движущихся в заданный конечный пункт. Помогите, как считать информацию с файла
C++ Сохранение результатов в файле (ошибка) http://www.cyberforum.ru/cpp-beginners/thread744535.html
Не компилируется в чем ошибка? #include "iostream" #include <windows.h> #include <fstream> using namespace std; void main() {
C++ Классы. Ввод данных о книге и их отображение (как улучшить код?) Изучаю классы. Сделал программку для класса card имеющего 2 метода - для введения данных о книге и их отображения. Подскажите как можно улучшить код, может стоит от чего-то отказаться или сделать по другому. #include <iostream> #include <string> using namespace std; class card { private: string author; string zaglav; подробнее

Показать сообщение отдельно
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
27.12.2012, 17:39     Сортировка русского алфавита с буквой ё
Добавил tolower_cp1251() для кириллицы чтоб сравнивать без учета региста
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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
//--------------------------------------
using namespace std;
//--------------------------------------
char tolower_cp1251(const char ch)
{
   if(ch=='Ё') return 'ё';
 
   if(ch>='А' && ch<='я')
    {
     if(ch<='Я') return ch+('а'-'А');
     else return ch;
    }
  else return tolower(ch);
}
//-----------------------------
struct lcmpch
{
 bool operator()(const char a,const char b)
  {
    if(tolower_cp1251(a)=='ё') return tolower_cp1251(b)>'е';
    if(tolower_cp1251(b)=='ё') return tolower_cp1251(a)<='е';
    return tolower_cp1251(a)< tolower_cp1251(b);
  }
};
//--------------------------------------
struct lcmpstr
{
 bool operator()(const string & a,const string & b)
  {
   return lexicographical_compare(a.begin(),a.end(),b.begin(),b.end(),lcmpch() );
  }
};
//--------------------------------------
int main()
{
    system("chcp 1251");
 
    vector<string> vs= {"азбука","бяка","Ёжик","мжик","ежик","ёжик","четыре","пять"};
 
    sort(vs.begin(),vs.end(),lcmpstr() );
 
    for(const string& s : vs ) cout<<s<<endl;
 
    cout<< endl;
    return 0;
}
//--------------------------------------
 
Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru