60分求助#2#4
查看原帖
60分求助#2#4
240709
woshishuilaizhe楼主2023/12/24 17:29
//B2135 单词替换 
#include<iostream>
#include<cstring>
using namespace std;
char s[201], a[101], b[101], c[101], u=0;
int main()
{
	int cl=0;
	scanf("%[^\n]",&s);
	for(int i=1; i<strlen(s); i++)//\n\r判断
	{
		if(s[i-1]==92 && (s[i]=='n'||s[i]=='r'))
		{
			u+=2;
			int al=0, bl=0;
			bool ab=true;
			for(int j=i+1; j<strlen(s); j++)
			{
				if(s[j]!=' '&&ab)a[al]=s[j],al++;
				else if(s[j]!=' ')b[bl]=s[j],bl++;
				else if(s[j]==' '&&al!=0)ab=not ab;
				u++;
			}
			if(al==0)cin>>a;
			if(bl==0)cin>>b;
			goto a3;
		}
	}
	cin >> a >> b;
	a3:for(int i=0; i<strlen(s)-u; i++)
	{
		if(s[i]!=' ')c[cl]=s[i],cl++;
		if(s[i]==' ' || i==strlen(s)-u-1)
		{
			if(strlen(a) == cl)
			{
				for(int j=0; j<cl; j++)
				{
					if(a[j]!=c[j])goto a1;
				}
				cout << b;
				goto a2;
				a1:for(int j=0;j<cl;j++)cout<<c[j];
			}
			else
			{
				for(int j=0;j<cl;j++)cout<<c[j];
			}
			a2:cl=0;
			cout << " ";
		}
	}
}
2023/12/24 17:29
加载中...