C语言中如何输入若干行文字,再输入一个字符串,查找并输出含有该字符串的那这些行

如题所述

#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main(void)
{
  char txt[20][100] = {"0"};
  char str[100] = {"0"};
  int n = 0, i = 0;

  printf("please input the number of lines:\n"); // 输入你要输入的行数
  scanf("%d",&n);

  printf("please input %d lines text:\n",n); // 输入你说的若干行文本
  for (i = 0; i < n; i++) {
   scanf("%s",txt[i]);
  }
  printf("please input the string:\n"); // 输入要匹配的字符串
  scanf("%s",str);

  for (i = 0; i < n; i++) {
   if (strstr(txt[i],str))
   printf("%s\n",txt[i]);
  }

  getch();
  return 0;
}

追问

能不能按照我的思路来,我想用一个二维数组一行来来存放文本,另外一行存放行数,你写的我目前还没学那么多,看不太懂,

追答

我写的就是二维数组的啊,那里看不懂,还有你说的二维数组一行存放文本,另外一行存放函数这不对,你理解错了,二维数组指的是列数为2不是行数为2,行数可以为任意行,

追问

对,我说错了,就是看不太懂开头的头文件

追答#include <string.h>        // 包含strstr函数
#include <stdio.h>        // 标准输入输出,即printf和scanf
#include <conio.h>        // 包含getch()函数
#include <stdlib.h>        // 这个这里应该没用到
这几个是常用的头文件,平时写代码基本都会用到所以我就都加着

温馨提示:答案为网友推荐,仅供参考