Вывод цифр, содержащихся в строке - C (СИ)
Формулировка задачи:
Здравствуйте, можете помочь перевести программу на строки, задание такое, нужно вводить в строку знаки,числа,буквы, а выводиться должны только цифры.
Var s,s1:string; i:byte; Begin write('Ââåäèòå ñòðîêó: ');readln(s); s1:=''; For i:=1 to Length(s) do if s[i] in ['0'..'9'] then s1:=s1+s[i] else Begin if s1<>'' then writeln(s1); s1:=''; End; if s1<>'' then writeln(s1); readln; End.
Решение задачи: «Вывод цифр, содержащихся в строке»
textual
Листинг программы
#include <ctype.h> #include <stdio.h> int main(void) { int i, n = 0; char s[256]; char s1[256] = ""; puts("Введите строку:"); scanf("%255[^\n]", s); for(i = 0; s[i] != '\0'; ++i) { if(isdigit(s[i])) { s1[n] = s[i]; s1[++n] = '\0'; } else if(*s1) { puts(s1); *s1 = '\0'; n = 0; } } if(*s1) puts(s1); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
и . - Объявление переменных:
int i
- цикл.n = 0
- счётчик для массиваs1
.char s[256]
- строка, которую вводит пользователь.- `char s1[256] = ``` - массив, в который будут добавляться цифры.
- Вывод сообщения с просьбой ввести строку.
- Считывание строки с помощью
scanf(
%255[^\n], s);
. - Проверка каждого символа в строке
s
. - Если символ является цифрой, то он добавляется в массив
s1
. - Если символ не является цифрой, но в массиве
s1
уже есть символы, то выводится текущее значение массиваs1
и его очистка для следующего добавления. - Если символ не является цифрой и в массиве
s1
нет символов, то ничего не происходит. - После прохода по всем символам в строке, если в массиве
s1
остались символы, то они выводятся на экран. - Возврат 0, означающий успешный исход программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д