С клавиатуры вводится латиница, не более 80 символов, вывести эти символы так, чтобы не было пробелов - C (СИ)

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

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

С клавиатуры вводится латиница, не более 80 символов, вывести эти символы так, чтобы не было более двух идущих подряд пробелов!Помогите пожалуйста

Решение задачи: «С клавиатуры вводится латиница, не более 80 символов, вывести эти символы так, чтобы не было пробелов»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        char * p = strstr(buf, "  ");
        
        while ( p ) {
            p += 2;
            while ( *p == ' ' )
                memmove(p, p + 1, strlen(p));
            
            p = strstr(p, "  ");
        }
        
        printf("Result: %s", buf);
    }
    
    return 0;
}

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

  1. Подключение необходимых библиотек: stdio.h и string.h
  2. Объявление переменной buf типа char, которая будет использоваться для хранения вводимой строки. Размер buf устанавливается в BUFSIZ.
  3. Запуск цикла while, который будет выполняться до тех пор, пока пользователь не введет строку, содержащую символ новой строки.
  4. Внутри цикла выводится приглашение для ввода строки.
  5. В цикле while ищется первое вхождение подстроки   (два пробела подряд).
  6. Если такая подстрока найдена, то она удаляется путем замены на пустую строку.
  7. После удаления пробелов, цикл while повторяется, чтобы найти следующую подстроку  .
  8. После выхода из цикла while выводится результат - введенная пользователем строка без пробелов.
  9. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

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