Alan20040921 2023-04-22 01:54 采纳率: 100%
浏览 55
已结题

在一个字符串中寻找某个子串

不断的从母串 str 中取出和子串长度相等的临时子串 temp,与子串 str2 进行比较。如果没有找到子串,返回 -1;成功找到子串,返回子串首字母在母串中的位置,该位置从 0 开始。
///
代码测试用例有一个通过不了
//////

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    int m,n,j,k,flag=0;
    char a[100000],b[100000];
    cin>>a>>b;
    m=strlen(a);
    n=strlen(b);//输入字符串长度; 
    for(j=0;j<=m-n;j++)
    {
        if(a[j]==b[0]){       //从母链里找和子链首字母相同的 
            flag=1;
            for(k=0;k<n;k++){  //对照是否其余元素嵌合 
            if(a[j+k]!=b[k]){
                flag=0;
                }
            }                  //若完全嵌合,则flag为1; 
            if(flag==1){
            cout<<j;
            break;//输出重合位置 
            }
        }
        
    }
    if(flag==0){
        cout<<-1;
    }
}

  • 写回答

3条回答 默认 最新

  • Alan20040921 2023-04-22 11:05
    关注

    已解决,输入的问题,cin识别不了空格

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月30日
  • 已采纳回答 4月22日
  • 创建了问题 4月22日