Как перевести строку в число?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Как перевести строку в число?

Re: Как перевести строку в число?

BBB » 03 апр 2009, 09:34

atoi - это не то?
Правда, в C-шных функциях перевода, в отличие от ф-й Pascal, мне не очень нравится то, что нельзя понять, есть ли во входной строке нецифровые символы. Т.е. atoi никак не сигнализирует об ошибке, выдавая в результате число, полученноен при преобразовании до первого ошибочного символа.


Есть еще strol. Она в т.ч. возвращает указатель на символ, на котором закончилось преобразование. Я пытался понять, есть ли во входной строке некорректные символы, анализирую значение этого указателя. По идее, если преобразована вся строка целиком, то он должен указывать "за конец строки", т.е. на символ 'x00'. Либо брать разность этого указателя и указателя на начало строки, если преобразована вся строка, то эта разность должна равняться значению lstrlen для исходной строки.

Re: Как перевести строку в число?

atavin-ta » 03 апр 2009, 08:25

Можно разобрать строку на подстроки-числа, а их - на цмфры, потом определи значения цифр вычитанием символа '0' из каждой цифры и сложы эти значения с весами. Вес крайней правой цифры числа всегда единица, а каждой левой в основание системы больше. Если система десятичная, то в десять раз. Для систем с большими основаниями придётся менять алгоритм перевода цифры в её значение. Один из возможных вариантов - табличный перевод каждой цифры в её значения. Кроме того, существуют готовые стандартные функции перевода сроки в число. Например. в borland с++е перевод десятичной строки в целое [syntax=C++] StrToInt(s:AnsiString) [/syntax].

Re: Как перевести строку в число?

WinMain » 02 апр 2009, 20:53

Если тебе надо время из строки в число перегнать, то в Visual C++ есть класс COleDateTime, у которого есть метод ParseDateTime.

Как перевести строку в число?

zhenek » 02 апр 2009, 20:01

Пишу сейчас класс и по условию задачи возникла потребность создания конструктора, который в качестве параметра принимает строку вида: "число:число:число". Данную строку надо перегнать в три значения для численных переменных... Как сделать, сообразить не могу. Заранее спасибо за помощь.

Вернуться к началу