С клавиатуры вводится латиница, не более 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, что означает успешное выполнение программы.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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