Язык программирования C

Скачать в pdf «Язык программирования C»


Упражнение 3.5. Напишите функцию itob (n, s, Ь), которая бы преобразовывала целое число п в его символьное представление в системе счисления с основанием Ь и помещала результат в строку s. Например, вызов itoa (n, s, 16) должен представлять п в виде шестнадцатеричного числа.


Упражнение 3.6. Напишите версию itoa, принимающую три аргумента вместо двух. Третий аргумент будет минимальной шириной поля; преобразованное число следует дополнить пробелами слева, если оно недостаточно длинное, чтобы заполнить это поле.

3.7. Операторы break и continue


Иногда бывает удобно выйти из цикла другим способом, отличным от проверки условия в его начале или в конце. Оператор break вызывает принудительный выход из циклов for, while и do— аналогично выходу из оператора switch. Выход выполняется из ближайшего (самого внутреннего) цикла или оператора switch.


Приведенная ниже функция trim удаляет пробелы, символы табуляции и конца строки из “хвоста” символьной строки, используя оператор break для выхода из цикла, как только найден самый правый символ, не являющийся одним из перечисленных “пустых” символов.


/* trim:    удаляет символы пустого пространства из конца строки */


int trim(char s[])

{


int n;


for (n = strlen(s)-l; n >= 0; n—)


if (s[n]    !=»&& s[n]    != *t’ && s[n]    != ‘n’)


break; s[n+l] = 1 0 1 ; return n;

}


Функция strlen возвращает длину строки. Цикл for начинает работу с конца строки и продвигается по ней назад, разыскивая первый символ, не являющийся одним из трех символов пустого пространства. Работа цикла заканчивается, как только такой символ найден или как только п станет отрицательным (т.е. пройдена вся строка). Рекомендуется проверить, правильно ли ведет себя функция даже в тех случаях, когда строка пустая или содержит только символы пустого пространства.

Скачать в pdf «Язык программирования C»