w_kvli 2015-12-16 08:42 采纳率: 0%
浏览 1444

书本上的C语言grep程序一个点理解不了,求大家为我解析

#include
#include
#define MAXLINE 1000
#define getline _getline

int getline(char *line, int max);

main(int argc, char *argv[])
{
char line[MAXLINE];
int found = 0;
if (argc != 2)
printf("Usage:\n");
else
while (getline(line,MAXLINE)>0)
if (strstr(line,argv[1])!=NULL){
printf("%s",line);
found++;
}
return found;
}

int getline(char *s, int lim)
{
int c;
char *t = s;
while (--lim > 0 && (c = getchar()) != EOF && c != '\n')
*s++ = c;
if (c == '\n')
*s++ = c;
*s = '\0';
return s - t;
}

我理解不了这个程序中这一段
if (strstr(line,argv[1])!=NULL){
printf("%s",line);
strstr返回一个指针,这个指针指向line里面匹配到的内容
那么为什么打印line会打印出这个匹配的内容呢?

  • 写回答

5条回答 默认 最新

  • devmiao 2015-12-16 08:45
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入