Удалить подряд идущие пробелы, не используя библиотеку string - C (СИ)
Формулировка задачи:
Удалить подряд идущие пробелы не используя библиотеку string.h
Пример реализации:
#include <stdio.h>
#include <string.h>
int main()
{
char input[100] = {"type text"};
char result[100];
fgets(input, 100, stdin);
for (int i, j = 0; i < strlen(input); i++, j++) {
if (input[i] == ' ') {
while (input[++i] == ' ') {}
result[j++] = ' ';
}
result[j] = input[i];
}
fputs(result, stdout);
}Решение задачи: «Удалить подряд идущие пробелы, не используя библиотеку string»
textual
Листинг программы
strlen(input)
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Функция
strlen()принимает в качестве аргумента строкуinputи возвращает ее длину. - Результат работы функции
strlen()присваивается переменнойlen. - Переменная
lenиспользуется для циклаfor, который выполняетсяlenраз. - Внутри цикла каждый символ строки
inputвыводится на экран с помощью функцииputchar(). - Если текущий символ является пробелом и предыдущий символ также является пробелом, то в этом случае пропускается вывод текущего символа.
- Если текущий символ не является пробелом, то предыдущий пробел (если он есть) удаляется с помощью функции
putchar(). - После завершения цикла выводится символ новой строки с помощью функции
putchar(). В результате выполнения данного кода на экран будет выведена исходная строка без подряд идущих пробелов.