1. 程式人生 > >The C Programming Language-4.1

The C Programming Language-4.1

lan sea for 字符串 ++ Language 個數 ram pan

下面是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 }

The C Programming Language-4.1