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

Icu итератор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подскажите пожалуйста либу на плюсах для операций с многоугольниками http://www.cyberforum.ru/cpp/thread1775508.html
Вообще задача - вычитать друг из друга пересекающиеся многоугольники (как во множествах) и соответственно находить результирующие многоугольники. Нашёл либу такую вещь, как "Clipper" но он работает...
C++ Как убрать столкновение Объектов на плоскости с пустым пространством? Код определяет столкновение по х и y. if ((obj1.x + obj1.width >= obj2.x) && (obj1.x <= obj2.x + obj2.width)) XColl = true; if ((obj1.y + obj1.height >= obj2.y) && (obj1.y <= obj2.y +... http://www.cyberforum.ru/cpp/thread1774470.html
C++ Lvalue и rvalue
Какая выгода использования rvalue? Допустим есть такой класс class A { public: A() = default; void setName(const std::string& name) { m_Name = name; }
C++ Как сделать проверку нажатия по спрайту хаотичной формы?
Игра в изометрии на SDL , и встаёт вопрос как сделать проверку нажатия(мышкой) на объект (например кровать) и совершить действия при нажатии(например спать)
C++ Нужна программа для перехвата клика мыши http://www.cyberforum.ru/cpp/thread1772607.html
Стоит задача: Когда я нажимаю ЛКМ нужно, чтобы программа перехватила это нажатие, и нажала лишь когда истечет определенное кол-во времени. pseudo_code: if(GetAsyncKeyState(0x01)) { перехват мыши;...
C++ Неявные интерфейсы С++ шаблонов. Сложно о простом Неявные интерфейсы С++ шаблонов. Сложно о простом. Вот заметка в формате PDF о том, как использовать типизацию для параметров шаблонов. Отдельные утверждения из заметки процитирую, не влезет... подробнее

Показать сообщение отдельно
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 239

Icu итератор - C++

05.07.2016, 10:53. Просмотров 235. Ответов 3
Метки (Все метки)

Здравствуйте. Подскажите как с помощью icu проитерировать посимвольно UnicodeString и на выходе получить то, что сразу можно в обычный string запихнуть. Нагуглил такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <unicode/unistr.h>
#include <unicode/uchriter.h>
/******/
    icu::UnicodeString ustr("Привет Мир! Hello World! дё–з•ЊпјЊдЅ*好!");
    
    const UChar *testText = ustr.getTerminatedBuffer();
    UCharCharacterIterator iter(testText, u_strlen(testText));
    
    while(iter.hasNext()){
        std::cout << iter.next32PostInc() << std::endl;
    }
Но next32PostInc() возвращает номер символа в unicode таблице, преобразовать его в строку можно так:
C++
1
2
3
    icu::UnicodeString uni_str((UChar32)iter.next32PostInc());
    std::string str;
    uni_str.toUTF8String(str);
Что кажется мне странным, в библиотеке есть куча других итераторов, но как они работают не совсем понятно. Если кто знает более адекватное решение, подскажите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru