Удвоить каждое вхождение символа в строку - 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, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д