问题:

    在终端输入多行信息,找出包含“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

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.

Would not we shatter it to bitd – and then.

#include<stdio.h>
#include<string.h>
#define MAX 1000
int getline(char line[])
{int limit = MAX - 1;int ch = 0;int i = 0;while ((ch = getchar()) && (--limit) && ch != '\n' && ch != EOF){line[i] = ch;i++;}if (ch == '\n'){line[i++] = '\n';}line[i] = '\0';return i;
}
char find(char *a,char *b,int m,int n)
{int i,j, k;i = k = 0;j = 0;while (i<m && j<n){if (a[i] == b[j]){i++;j++;}else{j = 0; k++;i = k;}}if (j >= n){return &a ;}else{return 0;}
}
int main(void)
{char line[MAX];char *p = "ould";int  m,n;m = strlen(line);n = strlen(p);while (getline(line)){if (find(line, p,m,n)){printf("%s", line);}}}