只能使用c++相关内容,不能使用c语言,并不能太明白怎么实现这个程序,也不太懂第一个索引的含义
2条回答 默认 最新
- CSDN专家-sinJack 2022-10-31 15:18关注
#include<iostream> #include<cstring> using namespace std; int indexOf(char *s1, char *s2); int main() { int size=999; char s1[size],s2[size]; cout<<"Enter the first string : "; cin.getline(s1,size); cout<<"Enter the second string: "; cin.getline(s2,size); cout<<"indexOf(\""<<s1<<"\", \""<<s2<<"\") is "<<indexOf(s1,s2)<<endl; return 0; } int indexOf(char *s1, char *s2) { int a,b,index,j,k; a=strlen(s1); b=strlen(s2); bool s3[a]; for(int m=0;m<a;m++) s3[m]=false; for(int i=0;i<b-a+1;i++) //控制s2的首字母 { for(j=0,k=i;(j<a)&&(k<i+a);j++,k++) //控制s2的总输出数 if(s1[j]==s2[k]) { index=i; s3[j]=true; } int h=0; for(int n=0;n<a;n++) { if(s3[n]==false&&i==b-a) { return -1;break; } if(s3[n]) h++; } if(h==a) { return index; } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录