题目:
编写一个程序,接受两个命令行参数,第一个参数是字符,第二个参数是文件名。要求该程序只打印文件中包含给定字符的那些行。
源代码:
方法1:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char * argv[]){
char ch[40];
char seeker = argv[1][0];
char * sta;
FILE * fp;
fp = fopen(argv[2],"r");
while(fgets(ch,40,fp) != NULL){
sta = strchr(ch,seeker);
if(sta) printf("字符串: %s",ch);
}
return 0;
}
方法2:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 256
int main(int argc,char * argv[]){
FILE * fp;
char * line = (char *) malloc(SIZE * sizeof(char));
char seeker;
fp = fopen(argv[2],"r");
seeker = argv[1][0];
while(fgets(line,SIZE,fp) != NULL){
char *p =line;
while(*p != '\0'){
if(*p++ == seeker){
printf("FOUND %c IN LINE: %s",seeker,line);
break;
}
}
}
return 0;
}
演示效果:
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈