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

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

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

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

07.11.2012, 10:34. Просмотров 283. Ответов 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 минут
Тест показал, что проблема не здесь, а во вводе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2012, 10:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::string и кириллические коды (C++):

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’ - C++
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами - C++
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Реализация класса MyString. Стандартная библиотека, std::string, std::vector - C++
как добавить реализацию конкатенации строк через перегрузку оператора &quot;+=&quot; в классе MyString и почему ошибка выдается???#include...

Передача функции указатель на элемент std::vector<std::string> - C++
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...

Операция std::cout для Объекта типа std::string - C++
Кто детально объяснит почему не выводит ? Дает вот так &quot;Отсутствует оператор &quot;&lt;&lt;&quot;, соответствующий этим операндам&quot; void...

1
alexcoder
1465 / 679 / 89
Регистрация: 03.06.2009
Сообщений: 3,587
Завершенные тесты: 1
07.11.2012, 12:27 #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;
}
Не проверял!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 12:27
Привет! Вот еще темы с ответами:

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

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

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

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &' - C++
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace std; int main() { string...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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