编写一段程序,将一个字符、零个或多个文件名作为命令行参数。如果字符后没有参数跟随,程序读取标准输入文件。否则,程序依次打开每个文件,然后报告每个文件中该字符的出现次数。文件名和字符本身也与计数值一起报告。程序中包括错误检查,以确定参数数目是否正确和是否能打开文件。如果不能打开文件,程序要报告这一情况然后继续处理下一文件。
#include <stdio.h> #include <stdlib.h> int count(char ch, FILE *fp); int main(int argc, char *argv[]) { int i; char ch; FILE *fp; if (argc<2) { printf("no char?\n"); exit(1); } ch = argv[1][0]; if ( argc == 2 ) { printf("input a article:"); printf("In your input : %c has been appeared %d times.\n",ch,count(ch,stdin)); } else for (i=2;i<argc;i++) { if( ( fp = fopen(argv[i],"r") ) == NULL ) printf("Can't open %s\n",argv[i]); else { printf("In %s : %c has been appeared %d times.\n",argv[i], ch, count(ch,fp)); fclose( fp ); } } return 0; } int count(char ch, FILE *fp) { int n=0; char ch2; while( (ch2=getc(fp)) != EOF) if( ch == ch2 ) n++; return n; }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题