Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/103: Рейтинг темы: голосов - 103, средняя оценка - 4.86
 Аватар для [WRG]
53 / 53 / 37
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1

std::string::find и кириллица

25.08.2013, 21:54. Показов 20632. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть простенький код
C++
1
2
3
4
5
6
7
8
9
#include <iostream>       // std::cout
#include <string>         // std::string
 
int main ()
{
    std::string str = "привет";
    std::cout << str.find("ве");
    return 0;
}
если в str содержится кириллица, то find работает как попало, выдаёт неверный результат.
с английскими буквами всё нормально. как бороться с этим, позарез нужен метод find, помогите пожалуйста!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2013, 21:54
Ответы с готовыми решениями:

Почему std::string::find не находит подстроку?
Вот: std::string str = &quot;01234567890&quot;; int p = str.find(&quot;23&quot;, 0, 5); std::cout &lt;&lt; p; На экране моника вывод проs'а: -1...

Как работает функция std::string::find(...)
здравствуйте есть допустим вот такой код #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string...

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

28
 Аватар для [WRG]
53 / 53 / 37
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.08.2013, 22:47  [ТС]
Студворк — интернет-сервис помощи студентам
благодарю, попробую использовать его
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
25.08.2013, 23:59
Use UTF-8, Luke!
wstring - так себе вариант. Не переносим, если собираешься работать с текстом рассмотри вариант UTF-8.
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
26.08.2013, 00:02
Цитата Сообщение от Герц Посмотреть сообщение
Use UTF-8, Luke!
wstring - так себе вариант. Не переносим, если собираешься работать с текстом рассмотри вариант UTF-8.
Так как правильно код будет выглядеть, чтоб переносился и т.д.?
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
26.08.2013, 11:04
C++
1
2
3
4
5
int main () {
    std::string str = u8"привет";
    std::cout << str.find(u8"ве");
    return 0;
}
Как-то так, но помимо этого для общения, например, с WinAPI, понадобится конверсия UTF-8 в UTF-16 и обратно, тут можно применить свой код (он довольно прост) или какой-нибудь libiconv.
Но стоит заметить, что строки лучше хранить в отдельном файле и читать из него, а не хранить в коде. В случае с Visual C++ исходники он интерпретирует в ASCII (например с кодировкой Windows-1251) и твоя строка в коде может превратиться в крякозябры. Если строки хранить в отдельном файле, но такого не случится.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
26.08.2013, 15:21
На VS2010 все работает.
Миниатюры
std::string::find и кириллица  
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.08.2013, 15:23
zer0mail, у ТС Linux.
0
1 / 1 / 0
Регистрация: 17.08.2013
Сообщений: 91
26.08.2013, 15:42
введи библиотеку
C++
1
#include <locale>
а потом в main() вставляй
C++
1
setlocale(LC_ALL, "RUS")
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
26.08.2013, 16:37
Toshik_, <locale.h> для setlocale. Ну или <clocale>, ибо locale никакого отношения к этой функции не имеет
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
26.08.2013, 18:16
Цитата Сообщение от alsav22 Посмотреть сообщение
zer0mail, у ТС Linux.
Ни имел дела с разработкой в Linux. Но если бы имел, то сначала разобрался с кодировками: какие поддерживаются, какие средства поддержки есть и какие из них предпочтительнее ("родней").
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2013, 18:16

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru