0033 編寫實現查詢字串s2在字串s1中第一次出現的位置,若找到則返回位置,否則返回0.
阿新 • • 發佈:2021-11-28
問題描述:
編寫實現查詢字串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 }
執行截圖: