Функции преобразования строки S в число:
- целое: int atoi(char *S);
- длинное целое: long atol(char *S);
- действительное: double atof(char *S);
При ошибке данные функции возвращают значение 0.
Пример:
char s[]="120"; int i;
i=atoi(s); // i=120
Функции преобразования числа V в строку S:
- целое: itoa(int V, char *S, int kod);
- длинное целое: ltoa(long V, char *S, int kod);
Здесь kod - основание системы счисления, в которой должно быть записано полученное число: 2£ kod £36, для десятичных чисел kod=10.
Пример:
char s[10]; int i=120;
itoa(i, s, 10);
Вместо этих функций, для преобразования чисел в строку и строки в числа можно использовать также функции:
sscanf(char *S, …) ;
sprintf(char *S, …) ;
Они во всем подобны функциям scanf и printf, но после их открывающей скобки вначале указывается имя строки, из которой "читаются" (sscanf) или в которую "записываются" (sprintf) значения совершенно так же, как они вводятся с клавиатуры функцией scanf или выводятся на экран функцией printf.
В отличие от функции atoi, sscanf позволяет отличить ошибку ввода от нулевого результата (см. про scanf в теме "Функции ввода-вывода"), например:
char s[20]; int i;
...
if (! sscanf(s, "%d", &i)) puts("Nevernoe chislo!");