Во вводимом с клавиатуры тексте удалить все пробелы, знаки табуляции - 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;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками.
- Объявление переменных:
- text[100] - массив символов, в который с клавиатуры будет вводиться текст;
- res[100] = `` - массив символов, в который будет записываться результат (отредактированный текст);
- c = 0 - счётчик пробелов;
- d = 0 - счётчик символов в редактируемом тексте;
- i, k = 0 - счётчики для цикла;
- Вывод приглашения для ввода текста.
- Ввод текста с клавиатуры с помощью функции gets(text).
- Цикл, который проходит по всем символам введённого текста.
- Внутри цикла проверяется, является ли текущий символ пробелом или табуляцией.
- Если символ является пробелом или табуляцией, то с помощью функции strncpy копируются символы из редактируемого текста в отредактированный текст, при этом счётчик пробелов увеличивается на 1.
- После выхода из цикла, в отредактированный текст копируются все оставшиеся символы из редактируемого текста.
- Вывод отформатированного текста.
- Получение сигнала окончания работы программы (нажатие клавиши Enter) с помощью функции getch().
- Возврат 0, что означает успешное окончание работы программы.