Добавить в начало каждой стоки файла столько пробелов, сколько их в ней встречается - C (СИ)
Формулировка задачи:
Здравствуйте, нужна помощь.
Нужно разработать программу, которая ставит в начало каждой стоки текстового файла столько пробелов, сколько в ней встречается их.
Решение задачи: «Добавить в начало каждой стоки файла столько пробелов, сколько их в ней встречается»
textual
Листинг программы
int BlanksCount(char* c)
{
int n,i;
n=0;
for(i=0;c[i]!=0;i++)
if(c[i]==' ')n++;
return n;
}
int main()
{
int n,i;
FILE *in,*out;
char buf[200];
in=fopen("input.txt","rt");
out=fopen("output.txt","wt");
while(!feof(in))
{
fgets(buf,200,in);
n=BlanksCount(buf);
for(i=0;i<n;i++)
fputc(' ',out);
fputs(buf,out);
}
fclose(out);
}
Объяснение кода листинга программы
- Проходим по каждой строке файла
input.txtс помощью функции fgets - Для каждой строки вызываем функцию BlanksCount, которая считает количество пробелов в строке
- Сохраняем количество пробелов в переменную n
- Записываем в файл
output.txtстолько пробелов, сколько указано в переменной n с помощью функции fputc - Записываем остаток строки из файла
input.txtв файлoutput.txtс помощью функции fputs