Д) Перевод строк - массивов char в числа и наоборот.

Функции преобразования строки 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!");