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 �C 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 �C and then.

Would not we shatter it to bitd �C 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);
		}
	}

}


你可能感兴趣的:(C语言--在终端输入多行信息,找出包含“ould”的行,并打印改行)