![]() |
String to int
Какой самый простой способ данного приведения типов? На ум пришла данная функция:
Код:
int stringToInt(string s,int n) В интернете читал о разных стандартных функциях, однако по ответам заметил, что многие из них не(корректно) работают. Поэтому интересуют максимально простые самостоятельные решения, либо те, что точно работают в большинстве стандартных компиляторов. |
Ответ: String to int
|
Ответ: String to int
Nope, не работает с самой строкой, только что проверял. Только если переводить из string в char, но как-то много переводов.
|
Ответ: String to int
кроме того есть atoi() и прочие
эм, string.c_str() много переводов? Тупо указатель на кидает на внутренний чар массив. |
Ответ: String to int
в С++0x есть некий std::to_string.
2012 студия его держит |
Ответ: String to int
всю жизнб atoi() юзал проблем не имел
|
Ответ: String to int
можно и самому реализовать (люблю давать подобное задание студентам).
сам тоже обычно юзаю atoi, хоть это и не стандартная функция (если только уже не стала) |
Ответ: String to int
Цитата:
|
Ответ: String to int
Нуу, например:
Код:
int L=strlen(str)-1; 1) перебор от начала к концу строки: придётся посчитать тяжёлый множитель через pow, который на каждой итерации ещё и делить на 10 (хотя умножение - при движении в другую сторону - будет быстрее); 2) неиспользование прошлых результатов: вычисление множителя через pow на каждой итерации. Или вот задание: генерировать имена файлов типа file000.bmp,file001.bmp... Некоторые тоже через itoa фигачат, каждую итерацию теребя дополнительные буферы и делая стркаты, хотя это можно сделать простой манипуляцией, переделывая один буфер. |
Ответ: String to int
Цитата:
|
Ответ: String to int
Цитата:
Код:
int simple_atoi ( const char *str ) |
Ответ: String to int
Код:
int L=strlen(str)-1; можно i вообще выкинуть. for(int mul=1;L>=Minus;L--,mul*=10) хотя читабельность много важнее минимально числа строчек. я бы вообще написал как-то так: Код:
int L=strlen(str)-1; Platon опередил. вот его вариант в разы читабельне, имхо. |
Ответ: String to int
Вложений: 1
:) |
Часовой пояс GMT +4, время: 02:58. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot