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

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

Войти
Регистрация
Восстановить пароль
 
Renji
2117 / 1476 / 347
Регистрация: 05.06.2014
Сообщений: 4,305
#1

Преобразование char16_t строки в число - C++

08.02.2017, 11:09. Просмотров 169. Ответов 2
Метки нет (Все метки)

Ну очень тупой вопрос - как стандартными средствами C++ преобразовать char16_t строку в число? В strtol не лезет, в wcstol не лезет, пробовал совать в std::stoi так ведь и туда не лезет. Так чем тогда надо char16_t строки парсить? Как накатать свой парсер я представляю. Но мне именно стандартными средствами интересно.
C++
1
2
3
    char16_t str[]=u"1234";
    std::stoi(std::u16string(str),nullptr,10);//и так не компилируется
    wcstol(str,nullptr,10);//и эдак не компилируется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2017, 11:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Преобразование char16_t строки в число (C++):

строки char16_t и char32_t - C++
здравствуйте, читаю Прата Стивен - ЯП С++. там есть примеры вида: #include <iostream> using namespace std; int main() { ...

Преобразование строки в число - C++
Имеется переменная строкового типа string. У нее такой формат: 1561 1 6.87208 4.52665 0.10226 2.16762 Нужно написать такую функцию,...

Преобразование строки в число - C++
А как многоразрядные числа из строки преобразовать? Если я использую string?

Преобразование из строки в число - C++
только начала программировать на С. то есть, буквально только что открыла 10й Билдер))) такой вопрос: есть ли в С Билдере функция...

Преобразование строки в число - C++
Здравствуйте. Преобразовываю строку в число с помощью функции atoi(), но есть одна проблема: int number; ...

Преобразование строки в число - C++
Есть строка с цифрами разделенная точкой с запятой: 1, 2, 3 string s = "1, 2, 3"; Как мне из этой строки достать по очереди все цифры и...

2
GbaLog-
Любитель чаепитий
3122 / 1462 / 351
Регистрация: 24.08.2014
Сообщений: 5,175
Записей в блоге: 1
Завершенные тесты: 2
08.02.2017, 11:53 #2
Цитата Сообщение от Renji Посмотреть сообщение
как стандартными средствами C++ преобразовать char16_t строку в число?
Так сойдёт?
http://rextester.com/GXKNE60448
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <string>
 
int main()
{
    char16_t str[] = u"1234";
    int n = std::stoi(std::string(str, str + 4));
    std::cout << n;
}
0
Renji
2117 / 1476 / 347
Регистрация: 05.06.2014
Сообщений: 4,305
08.02.2017, 12:24  [ТС] #3
Цитата Сообщение от GbaLog- Посмотреть сообщение
Так сойдёт?
Так это не парсинг char16_t, это преобразование char16_t в другой тип строки. Плюс, такое упрощенное преобразование создает потенциальные грабли в системе контроля ошибок.
C++
1
2
3
4
//в строке непонятно что, парсер должен либо вернуть ошибку, либо кинуть исключение
char16_t str[]=u"\u0131\u0132\u0133\u0134";
//однако, он спокойно кушает строчку
std::cout<<std::stoi(std::string(str,str+4),nullptr,10);
Нет, можно брать wstring у которого разрядности под char16_t хватит и подобных грабель не будет. Но а что тогда делать с char32_t? На char32_t то wstring может выдать аналогичные глюки.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2017, 12:24
Привет! Вот еще темы с ответами:

Преобразование строки в число - C++
какой аналог есть в c++ на strtoint inttostr?

Преобразование строки в число - C++
Почему не работает функция StrToInt, хоть библиотеку подключил stdlib.h

Преобразование строки в число? - C++
Написал функцию, которая введенную преобразует в число. Но при выводе пишет, что она хранит не введенное число, а 0. В чем я ошибся? ...

Преобразование строки в число - C++
Вот код из учебника #include&lt;iostream&gt; using std::cout;using std::endl; int main(){ char str=&quot;0123456789&quot;; const int SIZE=10; ...


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

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

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