社区讨论

为什么case(3)的时候最后一部分sd会出现乱码?帮帮忙

P5734【深基6.例6】文字处理软件参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo2melx0
此快照首次捕获于
2023/10/23 16:13
2 年前
此快照最后确认于
2023/10/23 16:13
2 年前
查看原帖
CPP
#include<iostream>
#include<cmath>
#include<iomanip>
#include<cstring>
using namespace std;
int as(string e,string er){
	int s,sd,t,a,q,we=-1,zx;
	s=sizeof(e);
	sd=sizeof(er);
	for( a=0;a<s;a++){q=1;
		if(e[a]==er[0]){
			for(t=0,zx=a;t<sd;t++,zx++){
				if(e[zx]!=er[t]) q--;
			}if(q) return a;
		}
	}
	return we;
}

int main(){
	int we,e,x,q,er,a,b,zx;
string s="",sd="",t="",c="";
cin>>q;
cin>>s;
for(er=1;er<=q;er++){
	cin>>we;
	switch (we){
		case 1:{
			cin>>sd;
			s=s+sd;
			cout<<s;
			sd="";
			break;
		}
		case 2:{
			cin>>a>>b;
			for(x=a;x<a+b;x++)
			t+=s[x];
			s=t;
			t="";
			cout<<s;
			break;
		}
		case 3:{
			cin>>q;cin>>t;
			zx=sizeof(s);
			sd="";
			for(e=q;e<zx;e++){//后面一段
				sd+=s[e];
				
			}	for(e=0;e<q;e++){c+=s[e];}/前面一段
			s=c+t+sd;
			cout<<s;
			c="";t="";sd="";
			break;
		}
		case 4:{
			cin>>sd;
			cout<<as(s,sd);
			break;
		}
	}
}
return 0;}







回复

0 条回复,欢迎继续交流。

正在加载回复...