一个打爆力的字符匹配为什么把cin换成scanf就错了?
  • 板块学术版
  • 楼主南瓜桐
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/10/15 20:16
  • 上次更新2023/11/4 03:44:11
查看原帖
一个打爆力的字符匹配为什么把cin换成scanf就错了?
439327
南瓜桐楼主2021/10/15 20:16
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
string a,b; 
int main(){
	cin>>a>>b;
	bool f = true;//记录是否找到子串 
	int lena=a.size();
	int lenb=b.size();
	for(int i=0;i<lena;i++){//枚举子串的起始点 i<=lena 可简化城 i<=lena-lenb+1
		//判断以该起始点是否子串和i—i+lenb的主串是否相同
		f=true;//初始化f
		for(int j=0;j<lenb;j++){
			if(a[i+j]!=b[j]){
				f=false;
				break;
			}
		}
		if(f==true) {
			cout<<i+1;//因为i,j是从0开始的所以输出+1  
			return 0;
		}
	}
	cout<<"主串不包含子串";
//	 abcdefgefg abc
	return 0;
}

2021/10/15 20:16
加载中...