按字符串读取文本文件char,并删除点和逗号前面的空格和连字符。 string.h函数的使用是禁止的! 我试着写一个删除单个连字符/空格的程序,以为我需要删除所有这些,例如点前面有一个,两个或多个空格。我认为,作为一个新手,我不清楚 我不完全了解如何使用while循环。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *f1;
FILE *f2;
char ch1;
char ch2;
char space=0;
if(argc==1)
{
printf("Unknown file\n");
return 1;
}
f1=fopen(argv[1], "r");
if(!f1)
{
printf("Error opening input file\n");
return 2;
}
f2=fopen(argv[2], "w");
if(!f2)
{
printf("Error creating output file\n");
return 3;
}
while((ch1=getc(f1))!=EOF)
{
if((ch1==' ')||(ch1=='\n'))
{
if((ch2 = getc(f1))=='.')
{
putc('.', f2);
}
else
{
putc(ch1, f2);
putc(ch2, f2);
}
}
else putc(ch1, f2);
}
return 0;
}
请向我解释一下!
答案 0 :(得分:0)
扰流:
#include <stdio.h>
int main(void)
{
int ch;
size_t count;
count = 0;
while (1) {
ch = getc(stdin);
switch (ch) {
case '.':
case ',': count = 0; break;
case ' ': count++; continue;
default: for ( ; count; count--) putc(' ', stdout); break;
}
if (ch == EOF) break;
putc(ch, stdout);
}
return 0;
}