问题描述:
编写实现查找字符串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 }
运行截图: