问题:
在终端输入多行信息,找出包含“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); } } }