The C Programming Language-4.1
下面是c程序设计语言4.1代码以及我的一些理解
strindex函数,通过嵌套两次循环,在s[ ]和t[ ]两个数组对映元素相等且t[ ]尚未遍历完毕的情况下,不断循环,最终返回正数或-1
代码如下
1 #include<stdio.h> 2 #define MAXLINE 1000 3 4 int get_line(char line[],int max); 5 int strindex(char source[],char searchfor[]); 6 7 char pattern[]="ould";//待查找的字符串 8 9 int main() 10 { 11 char line[MAXLINE]; 12 int found=0; 13 14 while(get_line(line,MAXLINE)>0) 15 if(strindex(line,pattern)>=0){ 16 printf("%s",line); 17 found++; 18 } 19 return found; 20 } 21
22 int get_line(char s[],int lim) //get_line函数: 输入行,并保存到s[]中 23 { 24 int c,i; 25 i=0; 26 while(--lim>0 && (c=getchar()) !=EOF &&c!='\n') 27 s[i++]=c; 28 if(c=='\n') 29 s[i++]=c; 30 s[i]='\0'; 31 return i; 32 } 33 34 int strindex(char s[],char t[]) //strindex函数: 返回t在s中的位置 35 { 36 int i,j,k; 37 38 for(i=0;s[i]!='\0';i++) 39 { 40 for(j=i,k=0;t[k]!='\0' && s[j]==t[k];k++,j++) 41 ; 42 if (k>0 && t[k] == '\0') 43 return i; 44 } 45 return -1; 46 }