10分,为什么会输出汉字??需要帮助!!!!
查看原帖
10分,为什么会输出汉字??需要帮助!!!!
672757
封禁用户楼主2023/5/5 21:41
#include<bits/stdc++.h>
using namespace std;
int a,b,c,s,n;
char p[105];
char x(char t)
{
	if(t>='a'&&t<='z')
	{
		return t;
	}
	else
	{
		return t-32;
	}
}
char d(char t)
{
	if(t>='A'&&t<='Z')
	{
		return t;
	}
	else
	{
		return t+32;
	}
}
void out(char l,char r)
{
	cout<<l;
	if(l!=r)
	{
		if(c==1)
		{
			for(int i=l+1;i<r;i++)
			{
				for(int j=1;j<=b;j++)
				{
					cout<<char(i);
				}
			}
		}
		else
		{
			for(int i=r;i>l;i--)
			{
				for(int j=1;j<=b;j++)
				{
					cout<<char(i);
				}
			}
		}
	}
	cout<<r;
	
}
void ot(char l,char r)
{
	int v=r-l+1;
	v*=b;
	v+=2;
	for(int i=1;i<=v;i++)
	{
		cout<<"*";
	}
}
void oot(char l,char r)
{
	cout<<l;
	if(c==1)
	{
		for(int i=l+1;i<r;i++)
		{
			for(int j=1;j<=b;j++)
			{
				cout<<char(i);
			}
		}
	}
	else
	{
		for(int i=r;i>l;i--)
		{
			for(int j=1;j<=b;j++)
			{
				cout<<char(i);
			}
		}
	}
	cout<<r;
}
bool pp(char t)
{
	if((t>='a'&&t<='z')||(t>='A'&&t<='Z'))
	{
		return true;
	}
	return false;
}
bool sz(char v)
{
	if(v>='0'&&v<='9')
	{
		return true;
	}
	return false;
}
void dd(int j)
{
	char l,r;
	l=p[j];
	r=p[j+2];
	if(a==1&&pp(l))
	{
		out(x(l),x(r));
	}
	else
	{
		if(a==2&&pp(l))
		{
			out(d(l),d(r));
		}
		else
		{
			if(sz(l))
			{
				oot(l,r);
			}
			else
			{
				ot(l,r);
			}
		}
	}
}
int main()
{
	cin>>a>>b>>c;
	cin>>p;
	n=strlen(p);
	for(int i=1;i>=0;i++)
	{
		if(s>n)
		{
			break;
		}
		if(s<n-1&&p[s+1]=='-')
		{
			dd(s);
			s+=2;
		}
		else
		{
			cout<<p[s];
		}
		s++;
	}
    return 0;
}

十分评测记录

2023/5/5 21:41
加载中...