Удаление лишних пробелов - C (СИ)

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

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

Приветствую. Все с той же задачей, нужно написать функцию, которая удаляет лишние пробелы из строки. С заданием я справился, но теперь, на основе этой функции

нужно написать два кода, один с применением индексированных массивов, второй с применением указателей

. Вроде как там нужно заменить несколько строк, но у меня что-то не получилось. Мой код функции:
#include<stdio.h>
#include<conio.h>
 
void main()
{
    int s=0;
    printf("Input your text:\n");
    while ((s = getchar())==' ')
     ;
    putchar(s);
    prob(s);
    printf("Press any key to exit...");
    _getch();
}
int prob(char s)
{
    int d;
    d = 0;
    while ((s = getchar()) != EOF) 
    {
        if (s == ' ')       
            d++;
        if (d <= 1 )        
            putchar (s);
        if (s != ' '&&d > 1)  
            putchar (s);
        if (s != ' ')       
            d=0;
    }
    return 0;
}
Заранее благодарен за помощь.

Решение задачи: «Удаление лишних пробелов»

textual
Листинг программы
// ...
#include <string.h>
// ...
 
int main() {
    char text1[256], text2[256];
 
    printf("text: ");
    fgets(text1, sizeof(text1), stdin);
    strcpy(text2, text1);
 
    printf("func1: %s", func1(text1));
    printf("func2: %s", func2(text2));
 
    return 0;
}

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

  1. Включается библиотека string.h, которая содержит функции для работы со строками.
  2. Создается массив text1 и text2 типа char с размером 256 символов.
  3. Выводится сообщение text: и считывается строка с помощью функции fgets в массив text1.
  4. С помощью функции strcpy массив text2 копируется из text1.
  5. Вызывается функция func1, передавая в качестве аргумента text1, и выводится результат.
  6. Вызывается функция func2, передавая в качестве аргумента text2, и выводится результат.
  7. Программа завершается, возвращая 0.

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

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