Игнорирование нулей на стандартном выводе - C (СИ)
Формулировка задачи:
Если программа определила введенную строку числом, нужно вернуть эту строку так, чтобы все нули, которые стоят в начале строки, до чисел от 1 до 9, игнорировались. Библиотеки только те, которые уже подключены.
Я ввожу: 01234 010203 12045 0000123 0
Программа отвечает:
number: 1234
number: 10203
number: 12045
number: 123
number: 0
#include <stdio.h> // printf, scanf
#include <stdlib.h> // atoi
char buf[101]; // Max length
int isNumber (const char *buf) {
int i = 0;
// Checking each symbol.
while (buf[i] != '\0')
{
if ( buf[i] < '0' || buf[i] > '9' )
{
return 0;
}
else i++;
}
// If all symbols are numbers - convert from string to decimal and return.
unsigned char input = atoi(buf);
return 1;
}
int main (void) {
while(scanf("%100s", buf) != EOF) // Scanning string until end of string.
{
if (isNumber(buf)) // If found number - print.
{
printf ("number: %s",buf);
}
else // If not number - just word.
{
printf ("word: %s",buf);
}
printf("\n"); //new line after each word/number
} //end of while
return 0;
}Решение задачи: «Игнорирование нулей на стандартном выводе»
textual
Листинг программы
printf ("number: %d", atoi(buf)) ;
Объяснение кода листинга программы
В представленном коде на языке C выполняется следующая последовательность действий:
- В строке кода
printf (number: %d, atoi(buf)) ;происходит попытка форматированного вывода информации. - Функция
printfпринимает два аргумента: строку формата и набор значений для подстановки. - В строке формата
number: %dприсутствует спецификатор формата%d, который указывает на то, что в этом месте должен быть выведен целочисленный значение. - Функция
atoiиспользуется для преобразования строки, представленной в переменнойbuf, в целое число. - Результат преобразования сохраняется в переменную, которая передается в функцию
printfвторым аргументом. - В данном случае, в качестве значения для вывода используется результат преобразования строки в целое число.
- При выполнении кода, в консоль будет выведено число, полученное в результате преобразования строки, представленной в переменной
buf, в целое число.