Преобразование типов вручную - C (СИ)
Формулировка задачи:
Необходимо написать функцию преобразования строки цифр в число. Читал на сайтах, вычитал способ:
"Приведем примеры явного преобразования.
int i;
Можно привести следующие примеры явных преобразований типов:
(char) i - преобразует значение типа int в значение типа char."
Я написал:
Но это совсем не работает. Как можно?
void CharConvertInt(char str[])
{
int i;
for(i=0;i<StrLen(str);i++)
(int) str[i];
}
Не, тут все неправильно) Надо по-другому, но тоже не получается.
int CharConvertInt(char str[])
{
int i,Chislo;
for(i=0;i<StrLen(str);i++)
Chislo=(int)str[i];
return Chislo;
}
Если ввести одну цифру.
Решение задачи: «Преобразование типов вручную»
textual
Листинг программы
int CharConvertInt(char str[])
{
int i,Chislo;
Chislo = 0;
for(i=0;i<StrLen(str);i++)
Chislo = Chislo*10 + (str[i]-'0');
return Chislo;
}
Объяснение кода листинга программы
- В функции
CharConvertIntпроисходит преобразование строки чисел в целое число. - Переменная
Chisloинициализируется значением 0 и используется для хранения результата преобразования. - В цикле
forперебираются символы строкиstr. - Внутри цикла значение
Chisloувеличивается на произведение 10 и разности между текущим символом и символом '0' (для получения числового значения символа). - После завершения цикла возвращается значение переменной
Chislo.