Удвоить каждое вхождение символа C в строку S - C (СИ)
Формулировка задачи:
Пожалуйста, помогите написать программу на СИ. Вот задание
"Введенные символ C и строка S. Удвоить каждое вхождение символа C в строку S."
Заранее спасибо)Решение задачи: «Удвоить каждое вхождение символа C в строку S»
textual
Листинг программы
#include <stdio.h> int main() { char c, s[256]; scanf("%c %127[^\n]s", &c, s); { unsigned char i = 0, j = 0; char s1[256]; while(s[i]) { if(s[i] == c) s1[j] = s[i], j++; s1[j] = s[i], j++, i++; } i = 0; while(i < j) s[i] = s1[i], i++; s[j] = 0; } printf("%s", s); return 0; }
Объяснение кода листинга программы
В этом коде:
- Переменная
c
объявлена как символ, в который считывается первый символ из стандартного ввода. - Переменная
s
объявлена как массив символов, в который считывается строка из стандартного ввода (до 255 символов). - Затем в цикле считываются все символы строки
s
, при этом проверяется, является ли текущий символ символомc
. - Если текущий символ равен
c
, он копируется в новую строкуs1
, а затем копируется в исходную строкуs
с удвоенным индексом. - Если текущий символ не равен
c
, он просто копируется в новую строкуs1
и затем в исходную строкуs
с удвоенным индексом. - После завершения чтения всех символов исходной строки
s
, все символы из новой строкиs1
копируются обратно в исходную строкуs
. - Затем исходная строка
s
выводится на стандартный вывод. - В конце программы возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д