|
|
|
| Всем доброго времени суток.
Мне поставлена как бы простая задача, сложить два введеных пользователем числа, но напрягает условие проверки ввода на числовые значения. На сколько я понял в Си нет стандартных ф-ций проверки типа, отсюда исхожу из принципа посимольного ввода getchar() и дальнейшего зенесеня в массив (строку) с последующим приведением (atoi(str)), но есть пара вопросов:
1) допустимо ли задание размера массива(выделение памяти под массив) типа
char *str;
for(i=0; i<num_x; i++)
str=(char*)malloc(sizeof(char)*(i++));
|
если нет, то почему ^-^ (.
2)что возвращает ф-ция getchar() ASCII код введеного символа ил что-то др.
P.S. Если вас не затруднит не могли ли бы вы привести пример проверки на int скажем строки
13fgh87
P.P.S. Просто у меня кроме електронного варианта книги Керниган\Ричи(их не понял) и С.Прата и д.р. есть только встроеный в Borland C++3.xx for DOS Help | |
|
|
|
|
 718 байт |
|
|
для: hell_riser
(21.01.2008 в 16:45)
| | Эээ...а ввод обязательно делать строкой? Это условие задачи?
[Update]
сделал вариант на скорую руку (см. аттач)
[Update 2]
delete[] num; | |
|
|
|
|
 949 байт |
|
|
для: Фитч
(22.01.2008 в 10:03)
| | >Эээ...а ввод обязательно делать строкой? Это условие задачи?
Да именно строкой.
Слегка по извращался над вашим кодом получил следующее(см. атач)
Есть такой вопрос:
ф-ция delete уничтожает только созданный new объект или в принципе любой, по хелпнику не понял.
И остался вопрос про изменение размера массива в цикле.(Вопрос снят просто была ошибка в алгоритме вот и не мог понять можно или нет) | |
|
|
|