Удвоить каждое вхождение символа в строку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите перекинуть с Паскаля на Си.
Листинг программы
  1. var s:string;
  2. c:char;
  3. begin
  4. writeln('Введите строку');
  5. readln(s);
  6. write('Введите символ ');
  7. readln(c);
  8. for i:=length(s) downto 1 do
  9. if s[i]=c then insert(c,s,i);
  10. write(s);
  11. readln
  12. end.

Решение задачи: «Удвоить каждое вхождение символа в строку»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX_LEN 80
  6.  
  7. int main()
  8. {
  9.     char s[MAX_LEN], c;
  10.     int i, j, length;
  11.     puts("Enter string: ");
  12.     fgets(s, 40, stdin);
  13.     puts("Enter charachter: ");
  14.     scanf("%c", &c);
  15.     length = strlen(s);
  16.     for (i = 0; i < length; ++i)
  17.     {
  18.        
  19.         if(s[i] == c)
  20.         {
  21.             for (j = strlen(s); j >= i; --j)
  22.                 s[j+1] = s[j];
  23.             ++i;
  24.             if (length < MAX_LEN) length = strlen(s);
  25.             else break;
  26.         }
  27.     }
  28.     printf("%s", s);
  29.    
  30.     return 0;
  31. }

Объяснение кода листинга программы

В этом коде задача состоит в том, чтобы удвоить каждое вхождение определенной буквы в строке. Вот список шагов, которые выполняются в коде:

  1. Входные данные:
    • Строка, введенная пользователем, сохраняется в массив s.
    • Пользователю предлагается ввести символ, который нужно удвоить, и он сохраняется в переменной c.
  2. Определяется длина строки с помощью функции strlen().
  3. Используется цикл for для прохода по каждому символу в строке.
  4. Внутри цикла проверяется, равен ли текущий символ введенному символу.
  5. Если символы совпадают, то:
    • Используется цикл for для перемещения всех символов вправо на одну позицию.
    • Если удвоенный символ не превышает максимально допустимую длину строки, то длина строки увеличивается на 1.
    • Цикл for прерывается, когда встречает символ, который не является дублирующимся.
  6. После завершения циклов выводится обновленная строка.
  7. Код завершается возвратом 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы