要点:
1、fgetc() 字符读取操作
2、fgets()字符串读取操作(整行读取)
3、is系列函数:如isupper(c)和islower(c)
4、fputs()函数写入字符
int replaceBlankAndBig(int argc, char* argv[]){
char c;
FILE *fin, *fout;
fin = fopen("The_Holy_Bible.txt", "r");
if (!fin) {
perror("The_Holy_Bible.txt");
return;
}
fout = fopen("The_Holy_Bible_Res.txt", "w");
if (!fout) {
perror("The_Holy_Bible_Res.txt");
return;
}
while ((c = fgetc(fin)) != EOF) {
//if (isupper(c) || islower(c)) //大小写互换!
if (isupper(c))
c ^= 0x20;
else if (ispunct(c))
//else if (c==','||c=='.')
c = ' ';
fputc(c, fout);
}
fclose(fin);
fclose(fout);
return 0;
}
int cnt(int argc, char* argv[]){
char c;
FILE *fin, *fout;
int cnt_char = 0, cnt_word = 1, cnt_line = 1;
fin = fopen("The_Holy_Bible_Res.txt", "r");
if (!fin){
perror("The_Holy_Bible_Res.txt");
return;
}
char str[1000];
int i;
while ((fgets(str, 1000, fin)) != NULL){
for (i = 0; i < strlen(str); ++i){
if (!isspace(str[i]))
cnt_char++;
if (isspace(str[i]))
cnt_word++;
if (str[i] == '\n')
cnt_line++;
}
}
printf("chars:%d\nwords:%d\nlines:%d\n",cnt_char, cnt_word,cnt_line);
fclose(fin);
return 0;
}
常用的文件操作函数: