Преобразовать текст, удалив все ‘*’ и повторив дважды каждый символ, отличный от ‘*’ - C (СИ) (79029)

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

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

всем привет. Дано такое задание.. Ввести массив строк символов (текст), которые могут содержать символы ‘*’. Преобразовать текст, удалив все ‘*’ и повторив дважды каждый символ, отличный от ‘*’. пользователь должен символы вводить с клавиатуры все нужно реализовать с помощью функций, все надо написать в Си а не в си++ как все написать и сделать задание не знаю, помогите пож-та, заранее спасибо.

Решение задачи: «Преобразовать текст, удалив все ‘*’ и повторив дважды каждый символ, отличный от ‘*’»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define SYMBOL '*'
 
int matches_count(const char * s, char ch){
    int cnt;
    char * p;
    
    for ( cnt = 0, p = strchr(s, ch); p; ++cnt, p = strchr(++p, ch) )
        ;
    
    return cnt;
}
 
int main(void){
    char buf[BUFSIZ], * p;
    int cnt, i;
    
    printf("String: ");
    scanf("%[^\n]", buf);
    if ( ! ( cnt = matches_count(buf, SYMBOL) ) )
        printf("%s", buf);
    else 
        for ( p = buf; *p; ++p )
            if ( *p != SYMBOL )
                for ( i = 0; i < cnt + 1; ++i )
                    printf("%c", *p);
    
    printf("\n");
    
    return 0;
}

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

  1. Удаление всех символов '*' из текста.
  2. Повторение каждого символа, отличного от '*', два раза.
  3. Входные данные: строка, содержащая символы, включая '*'.
  4. Выходные данные: преобразованная строка, в которой все символы '' удалены, а каждый символ, отличный от '', повторяется два раза.
  5. В функции matches_count подсчитывается количество вхождений символа 'ch' в строке 's'.
  6. В функции main происходит следующее: a. Ввод строки с помощью scanf. b. Если в строке нет символа '', то выводится исходная строка. c. Если в строке есть символ '', то происходит следующее: i. Перебираются все символы в строке. ii. Если символ не равен '*', то он выводится дважды. iii. Выводится преобразованная строка.

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


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

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

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