С клавиатуры вводится латиница, не более 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; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h и string.h
- Объявление переменной buf типа char, которая будет использоваться для хранения вводимой строки. Размер buf устанавливается в BUFSIZ.
- Запуск цикла while, который будет выполняться до тех пор, пока пользователь не введет строку, содержащую символ новой строки.
- Внутри цикла выводится приглашение для ввода строки.
- В цикле while ищется первое вхождение подстроки
- Если такая подстрока найдена, то она удаляется путем замены на пустую строку.
- После удаления пробелов, цикл while повторяется, чтобы найти следующую подстроку
- После выхода из цикла while выводится результат - введенная пользователем строка без пробелов.
- В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д