为啥输入啥都是-1,我一开始初始化t1=t2=0,就是t2-t1-1的值,改一下t2或者t1的值输出的值就改变了,敢情我的t2和t1根本没有进入循环呗,这怎么改啊,能不能在我的原有代码的基础上稍稍改动一下,或者找一下我写的代码的错误
#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
using namespace std;
int main(){
string s,s1,s2,s3;
int x;
cin >> s;
int z=s.size(),z1=s1.size(),z2=s2.size(),z3=s3.size();
for(int i=0;i<z;i++){
if(s[i]==',') break;
s1=s1+s[i];
x=i;
}
for(int i=x+2;i<z;i++){
if(s[i]==',') break;
s2=s2+s[i];
x=i;
}
for(int i=x+2;i<z;i++){
s3=s3+s[i];
}
int t1=0,flag1=0;
for(int i=0,j=0,count=0;i<z1;i++,j++){
if(s1[i]==s2[j%z2]){
count++;
}
if(count==z2){
flag1=1;
t1=i;
break;
}
if (s1[i]!=s2[i]){
i=i-count;
count=0;
j=j-count-1;
}
}
int t2=0,flag2=0;
for(int i=0,j=0,count=0;i<z1;i++,j++){
if(s1[i]==s3[j%z3])
count++;
if(count==z3){
flag2=1;
t2=i-count+1;
i=i-(count-1);
count=0;
}
if(s1[i]!=s3[i]){
i=i-count;
count=0;
j=j-count-1;
}
}
int length=t2-t1-1;
cout << length;
}