Удвоить каждое вхождение символа в строку - C (СИ)
Формулировка задачи:
Помогите перекинуть с Паскаля на Си.
var s:string; c:char; begin writeln('Введите строку'); readln(s); write('Введите символ '); readln(c); for i:=length(s) downto 1 do if s[i]=c then insert(c,s,i); write(s); readln end.
Решение задачи: «Удвоить каждое вхождение символа в строку»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LEN 80 int main() { char s[MAX_LEN], c; int i, j, length; puts("Enter string: "); fgets(s, 40, stdin); puts("Enter charachter: "); scanf("%c", &c); length = strlen(s); for (i = 0; i < length; ++i) { if(s[i] == c) { for (j = strlen(s); j >= i; --j) s[j+1] = s[j]; ++i; if (length < MAX_LEN) length = strlen(s); else break; } } printf("%s", s); return 0; }
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы удвоить каждое вхождение определенной буквы в строке. Вот список шагов, которые выполняются в коде:
- Входные данные:
- Строка, введенная пользователем, сохраняется в массив s.
- Пользователю предлагается ввести символ, который нужно удвоить, и он сохраняется в переменной c.
- Определяется длина строки с помощью функции strlen().
- Используется цикл for для прохода по каждому символу в строке.
- Внутри цикла проверяется, равен ли текущий символ введенному символу.
- Если символы совпадают, то:
- Используется цикл for для перемещения всех символов вправо на одну позицию.
- Если удвоенный символ не превышает максимально допустимую длину строки, то длина строки увеличивается на 1.
- Цикл for прерывается, когда встречает символ, который не является дублирующимся.
- После завершения циклов выводится обновленная строка.
- Код завершается возвратом 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д