/* 在终端输入多行信息,找出包含"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
#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;
}
原文:http://blog.csdn.net/zhaoyaqian552/article/details/44871971