The C Programming Language-4.1
阿新 • • 發佈:2018-10-24
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