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