【c语言】在终端输入多行信息,找出包含"ould"的行,并打印改行

/* 在终端输入多行信息,找出包含"ould"的行,并打印改行。
如:
Au,love could you and I with fate conspire
To grasp this sorry scheme of things entire,
Would not we shatter it to bitd - and then.
在终端输出上述的文字,输出
Au,love could you and I with fate conspire
Would not we shatter it to bitd - and then.*/

 #include <stdio.h>
 #define MAXLINE 1000
  //获取到一行字符判断是不是获取到一行并将它放到一个数组里边准备比较
 int getline(char ar[],int max)
 {
     int ch;
     int i =0;
     while((ch = getchar()) != EOF && ch != '\n' && i < max)
     {
         ar[i] = ch;
         i++;
     }
     if(ch == '\n')
         ar[i++] = ch;
     ar[i] = '\0';
     return i;
 }
 //比较判断出有没有目标字符串
 int compare(char line[],char str[])
 {
     int i,j,k;
     for(i = 0; line[i] != '\0'; i++ )
     {
	     //在i的地方标识出一个j,并让j向后走与k进行比较
         for(j = i,k = 0; str[k] != '\0' && str[k] == line[j]; j++,k++ )
         {
             ;
         }
		 //如果k动了并且k不走到最后说明匹配成功
         if( k>0 && str[k] == '\0' )
             return 1;
     }
     return 0;
 }  

  int main()
    {
        char line[MAXLINE];
        char str[] = "ould";  

        while( getline(line,MAXLINE) )
        {
            if( compare(line,str) )
                printf("---%s\n",line);
        }
        return 0;
    }
 <img src="http://img.blog.csdn.net/20150404115642971?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhcWlhbjU1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> 

时间: 2024-10-14 15:21:32

【c语言】在终端输入多行信息,找出包含"ould"的行,并打印改行的相关文章

【C语言】在终端输入多行,找出有“ould”的行,并打印。

<pre name="code" class="cpp">/* 在终端输入多行信息,找出包含"ould"的行,并打印改行 如: Au,love could you and I with fate conspire To grasp this sorry scheme of things entire, Would not we shatter it to bitd - and then. 在终端输出上述的文字,输出 Au,love c

在终端输入多行信息,找出包含“ould”的行,并打印改行

<span style="font-size:24px;">#include <stdio.h> #include<string.h> #define MAX 1000 //读取字符串函数 int getline(char line[],int max)//max为数组剩余长度 { char ch; int i=0; while(max>0 && (ch=getchar())!=EOF && ch!='\n')

仅通过崩溃地址找出源代码的出错行

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?--错啦!我相信我的看法是不会有人反对的--那就是,程序发生了崩溃! "该程序执行了非法操作,即将关闭.请与你的软件供应商联系.",呵呵,这句 M$ 的"名言",恐怕就是程序员最担心见到的东西了.有的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了:有时自己在编写和测试的过程中就莫名其妙地遇到了非法操作,但是却无法确定到底是源代码中的哪行引起的--是不是很痛苦呢?不要紧,本

java 从键盘输入学生成绩,找出最高分,并输出学生成绩等级。

/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入学生人数,根据人数创建int数组,存放学生成绩:*/ package study01; import java.util.Scanner; public class Score { public static void main(String[] args) { Scanner sc = new Scanne

输入一组数,找出满足某条件的数

1.输入一组数,找出它的最大值,最小值,平均值. 关键点是要把第一个数赋值给min,max,sum 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int min,max,sum,i; 6 cin>>i; 7 min = max =sum = i; // 将输入的第一个数赋值,以便后续比较 8 int n = 0; // 统计输入了多少个数 9 while(cin>>i){ 10 n++; 1

输入一组数,找出其中满足某种条件的数(二)

书接上文. 输入一组数,找出其中满足某种条件的数. 短短的一句话,可以衍生出各种场景.今天遇到一道题,输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从大到小输出.分数均为不超过100的非负整数. 我首先想到的是利用哈希表,用空间换时间. 1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int hash[101] = { 0 }; 7 int n = 0; 8 while (cin >>n

二分法检索(控制台输入一组数,找出关键字和最大值)

算法:二分法查找适用于数据量较大时,但是数据需要先排好顺序.主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置K (2)将查找的值T与array[k]比较.若相等,查找成功返回此位置:否则确定新的查找区域,继续二分查找.区域确定如下:a.array[k]>T 由数组的有序性可知array[k,k+1,--,high]>T;故新的区间为array[low,--,K-1]b.array[k]<T 类似上面查找区间为array[k+1,--,high

输入一串数字找出其中缺少的最小的两个数

Description There is a permutation without two numbers in it, and now you know what numbers the permutation has. Please find the two numbers it lose. Input There is a number Tshows there are T test cases below. (T<=10)  For each test case , the first

C语言:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

//fun函数:从p所指字符串中找出ASCII码最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. 1 #include <stdio.h> 2 void fun( char *p ) 3 { char max,*q; int i=0; 4 max=p[i]; 5 while( p[i]!=0 ) 6 { if( max<p[i] ) 7 { max=p[i]; 8 /**********found**********/ 9 q = p + i;//先找到最大值,记录最