0033 编写实现查找字符串s2在字符串s1中第一次出现的位置,若找到则返回位置,否则返回0.


问题描述:

  编写实现查找字符串s2在字符串s1中第一次出现的位置,若找到则返回位置,否则返回0.

代码展示:

 1 #include
 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(ilen2){
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 }

运行截图:

相关