string 和 char(RE3)
查看原帖
string 和 char(RE3)
157525
轩尘熙楼主2021/8/31 23:41
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string s;
	char qian[50];
	char hou[50];
	int a=0,b=0,c=0,d=0;
	getline(cin,s);
	if(s[s.size()-1]=='%')
	{
		for(int i=s.size()-2;i>=0;i--)
		{
			if(s[i]=='0'&&c==0)
			{
				continue;
			}
			else c=1;
			cout<<s[i];
		}
		if(c==0)
		{
			cout<<'0';	
		} 
		cout<<'%';
	}
	else
	{
		for(int i=0;s[i]!='.' && s[i]!='/' && i<s.size();i++)
		{
			qian[i]=s[i];
			a++;
		}
		for(int i=a+1;i<s.size();i++)
		{
			if(s[i]=='0'&&d==0&&s[a]=='.')
			{
				continue;
			}
			else d=1;
			hou[b]=s[i];
			b++;
		}
		for(int i=a-1;i>=0;i--)
		{
			if(qian[i]=='0'&&c==0)
			{
				continue;
			}
			else c=1;
			cout<<qian[i];
		}
		if(c==0)
		{
			cout<<'0';
		}
		//---- 
		cout<<s[a];
		//----
		if(d==0 && s[a]=='.')
		{
			cout<<'0';
		}
		else
		{
			c=0;
			for(int i=b-1;i>=0;i--)
			{
				if(hou[i]=='0' && c==0 && s[a]=='/')
				{
					continue;
				}
				else c=1;
				cout<<hou[i];
			}
		}
		//----
	}
	return 0; 
}

为什么把“qian”这个数组改成string类型 会RE第三个点呢?(如果进行for循环是不是不能这样:qian[i]=s[i]【即qian这个数组为空的情况下逐个把s[i]的值赋给qian是否会RE?为什么???】 )

2021/8/31 23:41
加载中...