`
小明哥
  • 浏览: 86811 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C语言笔记13

    博客分类:
  • C
阅读更多

找出所有与字符串匹配的行

#include <stdio.h>
#define MAXLINE 1000	/* 最大输入行长度 */

int getline(char line[], int max);
int strindex(char source[], char searchfor[]);

char pattern[] = "ould";	/* 待查找的字符串 */

/* 找出所有与字符串匹配的行 */
main()
{
	char line[MAXLINE];
	int found = 0;

	while(getline(line, MAXLINE) > 0)
		if(strindex(line, pattern) >= 0){
			printf("%s", line);
			found++;
		}
	return found;
}

/* getline函数:将行保存到s中,并返回该行的长度 */
int getline(char s[], int lim)
{
	int c, i;

	i = 0;
	while(--lim > 0 && (c=getchar()) != EOF && c != '\n')
		s[i++] = c;
	if(c == '\n')
		s[i++] = c;
	s[i] = '\0';
	return i;
}

/* strindex函数:返回t在s中的位置,若未找到则返回-1 */
int strindex(char s[], char t[])
{
	int i, j, k;

	for(i = 0; s[i] != '\0'; i++){
		for(j=i,k=0; t[k]!='\0' && s[j]==t[k]; j++, k++)
			;
		if(k > 0 && t[k] == '\0')
			return i;
	}
	return -1;
}

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics