0033 编写实现查找字符串s2在字符串s1中第一次出现的位置,若找到则返回位置,否则返回0.
问题描述:
编写实现查找字符串s2在字符串s1中第一次出现的位置,若找到则返回位置,否则返回0.
代码展示:
1 #include2 #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 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 }
运行截图: