Удвоить каждое вхождение символа 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;
}

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

В этом коде:

  1. Переменная c объявлена как символ, в который считывается первый символ из стандартного ввода.
  2. Переменная s объявлена как массив символов, в который считывается строка из стандартного ввода (до 255 символов).
  3. Затем в цикле считываются все символы строки s, при этом проверяется, является ли текущий символ символом c.
  4. Если текущий символ равен c, он копируется в новую строку s1, а затем копируется в исходную строку s с удвоенным индексом.
  5. Если текущий символ не равен c, он просто копируется в новую строку s1 и затем в исходную строку s с удвоенным индексом.
  6. После завершения чтения всех символов исходной строки s, все символы из новой строки s1 копируются обратно в исходную строку s.
  7. Затем исходная строка s выводится на стандартный вывод.
  8. В конце программы возвращается 0, что означает успешное выполнение.

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


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

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

12   голосов , оценка 3.833 из 5
Похожие ответы