BBB » 03 апр 2009, 09:34
atoi - это не то?
Правда, в C-шных функциях перевода, в отличие от ф-й Pascal, мне не очень нравится то, что нельзя понять, есть ли во входной строке нецифровые символы. Т.е. atoi никак не сигнализирует об ошибке, выдавая в результате число, полученноен при преобразовании до первого ошибочного символа.
Есть еще strol. Она в т.ч. возвращает указатель на символ, на котором закончилось преобразование. Я пытался понять, есть ли во входной строке некорректные символы, анализирую значение этого указателя. По идее, если преобразована вся строка целиком, то он должен указывать "за конец строки", т.е. на символ 'x00'. Либо брать разность этого указателя и указателя на начало строки, если преобразована вся строка, то эта разность должна равняться значению lstrlen для исходной строки.
[b]atoi[/b] - это не то?
Правда, в C-шных функциях перевода, в отличие от ф-й Pascal, мне не очень нравится то, что нельзя понять, есть ли во входной строке нецифровые символы. Т.е. [b]atoi[/b] никак не сигнализирует об ошибке, выдавая в результате число, полученноен при преобразовании до первого ошибочного символа.
Есть еще [b]strol[/b]. Она в т.ч. возвращает указатель на символ, на котором закончилось преобразование. Я пытался понять, есть ли во входной строке некорректные символы, анализирую значение этого указателя. По идее, если преобразована вся строка целиком, то он должен указывать "за конец строки", т.е. на символ 'x00'. Либо брать разность этого указателя и указателя на начало строки, если преобразована вся строка, то эта разность должна равняться значению [b]lstrlen[/b] для исходной строки.