问题:
在终端输入多行信息,找出包含“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);
}
}
}
转载于:https://blog.51cto.com/9195095/1705677