1. 程式人生 > 實用技巧 >實驗11-1-8 查詢子串

實驗11-1-8 查詢子串

 1 #include <stdio.h>
 2 #define MAXS 30
 3 
 4 char *search(char *s, char *t);
 5 void ReadString( char s[] ); /* 裁判提供,細節不表 */
 6 
 7 int main()
 8 {
 9     char s[MAXS], t[MAXS], *pos;
10 
11     ReadString(s);
12     ReadString(t);
13     pos = search(s, t);
14     if ( pos != NULL )
15         printf("
%d\n", pos - s); 16 else 17 printf("-1\n"); 18 19 return 0; 20 } 21 22 /* 你的程式碼將被嵌在這裡 */ 23 char *search(char *s, char *t) 24 { 25 26 int len = 0, i; 27 char *p, *ret; 28 29 p = t; 30 while (*p != '\0') 31 { 32 len++; 33 p++; 34 } 35 36
p = s; 37 while (*p != '\0') 38 { 39 for (i = 0; i < len; i++) 40 { 41 if (p[i] != t[i]) 42 { 43 break; 44 } 45 } 46 if (i == len) 47 { 48 break; 49 } 50 p++; 51 }
52 if (*p != '\0') 53 { 54 ret = p; 55 } 56 else 57 { 58 ret = NULL; 59 } 60 61 return ret; 62 }