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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

std::string и кириллические коды - C++

07.11.2012, 10:34. Просмотров 275. Ответов 1
Метки нет (Все метки)

дана строка
C++
1
std::string s;
, в ней кириллические символы, надо найти порядковые номера этих символов, согласно алфавиту. Для латиницы
C++
1
2
3
4
5
6
7
8
9
c=s[i];
if ((c>='a')&&(c<='z'))
{
 code=((size_t ) c)-((size_t ) 'a')+1;
}
if ((c>='A')&&(c<='Z'))
{
 code=((size_t ) c)-((size_t ) 'A')+1;
}
работает, а для кириллицы
C++
1
2
3
4
5
6
7
8
9
c=s[i];
if ((c>='а')&&(c<='Я'))
{
 code=((size_t ) c)-((size_t ) 'а')+1;
}
if ((c>='А')&&(c<='Я'))
{
 code=((size_t ) c)-((size_t ) 'А')+1;
}
не фурычит.

Добавлено через 1 час 0 минут
Тест показал, что проблема не здесь, а во вводе.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 10:34     std::string и кириллические коды
Посмотрите здесь:

Почему std::string_view МЕДЛЕННЕЕ, чем std::string? - C++
Всем привет! Нужно найти количество уникальных строк в больших текстовых файлах (размером до нескольких гигабайт). Почему в...

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?

Здравствуйте! Создал класс std::string. Не создается объкт типа string... Подскажите в чем причина? - C++
#include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; //using namespace std; class string { private: int...

std::string + std::remove - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; int main() { std::string str(&quot;hello, world. have a nice...

std::string -> std::wstring - C++
Как перевести данный код в код с использованием wstring ( посути использовать std::vector&lt;std::wstring&gt; refs; ) #include &lt;vector&gt; ...

'string' : undeclared identifier, std::string - C++
#include &lt;regex&gt; #include &lt;string&gt; #include &lt;vector&gt; std::vector&lt;string&gt; Tokenize( const string str, const std::regex regex ) { ...

Std::string - C++
никак не пойму чем отличаются методы append и assign у std::string?

std::string - C++
Господа, подскажите где можно поглядеть методы string-a литературы никакой под рукой нет, а гуглить в лоб что-то результаттов не дает. ...

std:string - C++
1. Поддерживает ли этот класс сравнение целиком строк? Каков синтаксис сравнения строк? 2. Поддерживает ли этот класс конкатенацию? Каков...

std::string - C++
Здравствуйте! У меня есть std::vector&lt;std::string&gt; Подскажите пожалуйста как быстро и красиво можно перевести i-тый элемент вектора в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1462 / 676 / 88
Регистрация: 03.06.2009
Сообщений: 3,504
Завершенные тесты: 1
07.11.2012, 12:27     std::string и кириллические коды #2
Потому что при вводе с консоли кирилица вводится в кодировке CP866, а в исходном тексте 'А' - в кодировке 1251.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
c=s[i];
if ((c>=0xa0)&&(c<=0xaf))
{
 code=((size_t ) c)-((size_t )0xa0)+1;
}
if ((c>=0xe0)&&(c<=0xef))
{
 code=((size_t ) c)-((size_t )0xe0)+1;
}
if ((c>=0x80)&&(c<=0x9f))
{
 code=((size_t ) c)-((size_t ) 0x80)+1;
}
Не проверял!
Yandex
Объявления
07.11.2012, 12:27     std::string и кириллические коды
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru