Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск рус. слова в переменной типу STRING, поиск слово рус. стринг string 
:(
    Опции темы
botasa
Дата 22.4.2012, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.11.2011

Репутация: нет
Всего: нет



Как сделать поиск под слова в переменной типу string из рус. текстом

Например если есть такое :

Код C++
    
Код

string text = "hello world";
string word;
cin >> word; // ввожу world
int a = text.find(word);
cout << a << endl;


то переменная будет нести в себе позицию начала этого слова в строке text

Как сделать такое только с рус. текстом ? Например

Код C++

Код

string text = "Привет мир";
string word;
cin >> word; // ввожу мир
int a = text.find(word);
cout << a << endl;


то в теории переменная а будет нести в себе позицию начала нужного мне слова, но а мне возвращает -1, и когда я ввожу рус. слова в переменную word и вывожу на екран оно мне кракозябры выводит. 
как сделать что б при вводе слова в переменную типа STRING оно нормально вводилось и выводилось это надо для поиск вводимого мной слова в тексте
PM MAIL   Вверх
boostcoder
Дата 22.4.2012, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Код

#include <iostream>
#include <string>

int main() {
   std::string text = "Привет мир";
   std::string word = "мир";
//   std::cin >> word; // ввожу мир
   int a = text.find(word);
   std::cout << a << std::endl;
}


http://liveworkspace.org/code/b9b8befdc0c4...4fc06063a88aab1

вывод:
Код

13

все правильно.

13 - потому что слово "Привет" состоит из UTF-8 символов, а каждый из них имеет размер 2 байта. и плюс пробел. того 13.

PM WWW   Вверх
botasa
Дата 22.4.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.11.2011

Репутация: нет
Всего: нет



а если я ввожу с клавиатуры слово МИР оно кракозябры показивает и не делает сравнение .. как мне это поправить ???
PM MAIL   Вверх
boostcoder
Дата 22.4.2012, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



это зависит от используемой ОС и компилятора.

PM WWW   Вверх
botasa
Дата 22.4.2012, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.11.2011

Репутация: нет
Всего: нет



Win 7 чистый СП1  Укр/Рус/Анг
комп - MS Visual Studio Ultimate original from MSDN
PM MAIL   Вверх
boostcoder
Дата 22.4.2012, 16:50 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



я полагаю лицензии на эти продукты ты можешь предъявить?

смотри тут: http://forum.vingrad.ru/forum/topic-269794...y2086699/0.html
третий пост.

PM WWW   Вверх
botasa
Дата 22.4.2012, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.11.2011

Репутация: нет
Всего: нет



а вы что представник Microsoft или из милиции ? че за странной вопрос ... 
PM MAIL   Вверх
boostcoder
Дата 22.4.2012, 17:17 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(botasa @  22.4.2012,  17:02 Найти цитируемый пост)
представник 

>представитель

нет.
просто любопытно, почему люди крадущие чужие продукты, предпочитают красть, вместо того чтоб купить не нарушая законов.

это воскресный оффтоп smile 
PM WWW   Вверх
botasa
Дата 22.4.2012, 17:47 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.11.2011

Репутация: нет
Всего: нет



Ну и я себе оффтоп позволю 1 раз =))

не крадут а скачивают, это как робин гуд один украл в богатых и раздает, тем кому раздают я не считаю ворами =))) , не знаю сколько вам лет и сколько вы зарабатываете, но студенту тяжело купить такое =) да без вопросов есть и без. ресурсы, программы, но так как мы живем в Украине / России зачем себе отказывать в удовольствие ? А вы случайно не слышали про такие ресурсы как ex.ua / rutracker и другие ?) там можно сказать сокровище  100-летнего накопления по сравнению с моей ОС и компилятором =)

я конечно не за и не против, я так по середине, но вы зайдите к примеру на ютуб или в гугле вбейте видео про то как закрывали ex.ua ресурс полный халявы, и вы увидите там людей больше собралось чем на выборы президента =)

Это сообщение отредактировал(а) botasa - 22.4.2012, 17:51
PM MAIL   Вверх
boostcoder
Дата 22.4.2012, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(botasa @  22.4.2012,  17:47 Найти цитируемый пост)
как робин

ага, знаю я такую девушку: "жила-была девушка робин гуд. у богатых брала, бедным давала." © кто-то там...

Добавлено через 1 минуту и 20 секунд
Цитата(botasa @  22.4.2012,  17:47 Найти цитируемый пост)
там людей больше собралось чем на выборы президента

ну и правильно. президентов выбирает не народ.

PM WWW   Вверх
Леопольд
Дата 22.4.2012, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(botasa @  22.4.2012,  15:30 Найти цитируемый пост)
Win 7 чистый СП1  Укр/Рус/Анг
комп - MS Visual Studio Ultimate original from MSDN


Стоит второй системой линух поставить (и совесть чиста..). G++ лучше подходит для студента (поведение ближе к стандарту). Советую убунту, там много чего свежего из коробки. Тот же буст... Особенно приятно что не надо мучиться с либами, установил из репов, в проекте прописал и вуаля. Для плюсов предпочитаю IDE Code::Blocks. Эклипс весьма неплох, но нужен мощный агрегат для него. IMHO, программер должен быть на ты с обеими операционками.


Кстати, существует бесплатная версия студии. А всякие кряки - не секьюрно это, можно и пострадать...

Это сообщение отредактировал(а) Леопольд - 22.4.2012, 22:51


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Twelves
Дата 23.4.2012, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 22.6.2011

Репутация: нет
Всего: нет



Для студентов есть DreamSpark. Профессиональная VS бесплатно
PM MAIL   Вверх
borisbn
Дата 23.4.2012, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Цитата(boostcoder @  22.4.2012,  13:37 Найти цитируемый пост)
13 - потому что слово "Привет" состоит из UTF-8 символов, а каждый из них имеет размер 2 байта. и плюс пробел. того 13.

УЖОС  smile

Добавлено через 5 минут и 52 секунды
т.к. a != std::string::npos, то я наивно надеялся, что имею право вытащить символ
Код
text.at( a );

ан нет...


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Randajad
Дата 23.4.2012, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8



С каких пор UTF-8 появился в std::string? Это обычный ASCII.
А std::wstring - unicode. Там два байта на символ.
PM MAIL   Вверх
borisbn
Дата 23.4.2012, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 22
Всего: 135



Randajad, сам в шоке... см. ссылку на LWS в первом же сообщении boostcoder


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.