PRB: реализация atoi
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 28.08.02 12:46
Оценка:
Итак, в качестве затравки одна довольно тривиальная задачка (крутым гуру просьба не беспокоиться , а вот те, кому интересно — дерзайте).

Задача:

Написать функцию, которая конвертирует строку (char*) в число (int), то есть реализацию atoi. Прототип функции:


int new_atoi(const char* string);


Условия:

0. Язык программирования — С/С++.

1. Запрещается пользоваться любыми библиотечными функциями (типа strlen и пр.), а также сторонними классами и иже с ними. В двух словах, задача должна решаться встроенными средствами языка С/С++.

2. Пробельные символы в начале строки (пробел и символ табуляции — \t) опускаются.

3. Знак числа должен сохраняться.

4. Возвращаемое значение — либо 0 в случае ошибки, либо часть числа до момента встречи ошибки (например, если строка содержит значение "1024u78", то возвращаемым значением будет число 1024

5. Передаваемая строка содержит числа в десятичном формате.

Набор тестов:


new_atoi("12345")       =  12345
new_atoi("22345")       =  22345
new_atoi("-12345")      = -12345
new_atoi("--12345")     =  0
new_atoi("+12345")      =  12345
new_atoi("   12345")    =  12345
new_atoi("   12345   ") =  12345
new_atoi("\t12345")     =  12345
new_atoi(NULL)          =  0
new_atoi("-r12345")     =  0
new_atoi("123w45")      =  123
new_atoi("a12345")      =  0


Дерзайте. За лучшую реализацию — приз (более интересная задача)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.