Заменить все цифры массива слов на символ "&" - C (СИ)
Формулировка задачи:
Как заменить все цифры массива слов на символ "&" ?
Решение задачи: «Заменить все цифры массива слов на символ "&"»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int main(void) {
char buf[BUFSIZ];
while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
for ( char * ptr = strpbrk(buf, "0123456789"); ptr; ptr = strpbrk(ptr + 1, "0123456789") )
*ptr = '&';
printf("Result: %s", buf);
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлена переменная типа char с именем buf и размером BUFSIZ.
- В цикле while программа запрашивает у пользователя ввод строки с помощью функции fgets в буфер buf.
- Если строка успешно введена, то в цикле for происходит замена всех цифр на символ '&' с помощью функции strpbrk, которая ищет первое вхождение цифры в строке, а затем заменяет его на '&'.
- После замены выводится результат замены с помощью функции printf.
- Если ввод некорректен (ввод не строка или ввод содержит символы, которые приводят к исключению), то программа завершается.
- В конце программы возвращается 0, что означает успешное завершение.