Haikson

[ Everything is possible. Everything takes time. ]

Строки C++: преобразование строки в число.

Еще одна задача, которая часто встречается на форумах - это вопрос по преобразованию строки в число. И не важно какого типа число: int, float, или другого. Важен сам факт преобразования, сама технология. На самом деле если особо не забивать голову замарочками, типа "функция atoi не всегда работает корректно (что я проверил на практике, но не искал причины)", то вопрос решается очень легко. Чтоб не тянуть я сразу приведу 2 функции преобразования строки в число типа int. Вы можете просто изменить тип данных и получите float, double... Для начала нужно подключить заголовочный файл sstream ....
#include <sstream>
....
int str_to_int(string str){
    stringstream sstr;
    int int_val;
    //    Если строка пустая, то вернем 0
    if (str.empty())
        return 0;
    sstr << str;
    sstr >> int_val;
    return int_val;
}

int str_to_int(char* str){
    stringstream sstr;
    int int_val;
    //    Если строка пустая, то вернем 0
    if (strlen(str) == 0)
        return 0;
    sstr << str;
    sstr >> int_val;
    return int_val;
}
Так всё легко и просто. А для удобства я бы порекомендовал вынести все функции преобразования строк в отдельный класс и работать с ним.