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

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

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

Нужно написать программу, которая во вводимом с клавиатуры тексте удалит все пробелы, знаки табуляции и выведет количество удаленных символов на экран. Получилось пробелы убрать, а со знаками табуляции и выводом не особо понятно, как делать
#include <stdio.h>
#include <conio.h>
 
int main(void)
{
    char text[100], blank[100];
    int c = 0, d = 0;
    
    printf("Vvedite lyuboy tekst\n");
    gets(text);
    
    while(text[с] != '\0')
    {
        if(!(text[с] == ' ' && text[c+1] == ' '))
        {
            blank[d] = text[с];
            d++;
        }
        c++;
    }
    blank[d] = '\0';
    printf("Otredaktirovanniy tekst\n%s\n", blank);
    
    getch();
    return 0;
}

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

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(void)
{
    char text[100],res[100]="";
    int c = 0, d = 0,i,k=0;
    
    printf("Vvedite lyuboy tekst\n");
    gets(text);
    for(i=0;i<strlen(text);i++)
    {
        if((text[i]==' ')||(text[i]=='\t'))
        {
            strncpy(&res[с],&text[d],i-d);
            k++;
            c=c+i-d;
            d=i+1;
        }
    }
    strncpy(&res[с],&text[d],strlen(text)-d);
    printf("Otredaktirovanniy tekst\n%s\n kol=%d", res,k);
    
    getch();
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками.
  2. Объявление переменных:
    • text[100] - массив символов, в который с клавиатуры будет вводиться текст;
    • res[100] = `` - массив символов, в который будет записываться результат (отредактированный текст);
    • c = 0 - счётчик пробелов;
    • d = 0 - счётчик символов в редактируемом тексте;
    • i, k = 0 - счётчики для цикла;
  3. Вывод приглашения для ввода текста.
  4. Ввод текста с клавиатуры с помощью функции gets(text).
  5. Цикл, который проходит по всем символам введённого текста.
  6. Внутри цикла проверяется, является ли текущий символ пробелом или табуляцией.
  7. Если символ является пробелом или табуляцией, то с помощью функции strncpy копируются символы из редактируемого текста в отредактированный текст, при этом счётчик пробелов увеличивается на 1.
  8. После выхода из цикла, в отредактированный текст копируются все оставшиеся символы из редактируемого текста.
  9. Вывод отформатированного текста.
  10. Получение сигнала окончания работы программы (нажатие клавиши Enter) с помощью функции getch().
  11. Возврат 0, что означает успешное окончание работы программы.

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


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

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

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