1. 程式人生 > 其它 >0033 編寫實現查詢字串s2在字串s1中第一次出現的位置,若找到則返回位置,否則返回0.

0033 編寫實現查詢字串s2在字串s1中第一次出現的位置,若找到則返回位置,否則返回0.

問題描述:

  編寫實現查詢字串s2在字串s1中第一次出現的位置,若找到則返回位置,否則返回0.

程式碼展示:

 1 #include<stdio.h>
 2 #include<string.h>
 3 int index(char str1[], char str2[]);
 4 int main(){
 5     char str1[100], str2[50];
 6     int idx;
 7     printf("請輸入str1:");
 8     scanf("%s",str1);
 9     printf("請輸入str2:");
10     scanf("
%s",str2); 11 idx = index(str1,str2); 12 if(idx == 0){ 13 printf("str2在str1中未出現!"); 14 }else{ 15 printf("str2在str1中首次出現的位置是:%d\n",idx+1); 16 } 17 return 0; 18 } 19 int index(char str1[], char str2[]){ 20 int i=0,j=0; 21 int countime = 0; 22 int len1 = strlen(str1);
23 int len2 = strlen(str2); 24 while(i<len1 && j<len2){ 25 if(str1[i] == str2[j]){ 26 i++;j++; 27 } else{ 28 countime++; 29 i = countime; 30 j = 0; 31 } 32 if(j == len2){ 33 return i-len2;
34 } 35 } 36 return 0; 37 }

執行截圖: