#include<iostream>
using namespace std;
void sort(char b[],int n[],char fh[],int &m)
{
int k,j;
for(int i=0;i<strlen(b);i++)
{
if(b[i]=='+'||b[i]=='-'||b[i]=='*'||b[i]=='/'||b[i]==')')
{
k=1;
j=i-1;
while(1)
{
if(isdigit(b[j]))
{
n[m]+=(b[j]-'0')*k;
k*=10;
j--;
}
else if(!isdigit(b[j])||j<0)
break;
}
m++;
fh[m]=b[i];
m++;
}
else if(b[i]=='(')
{
fh[m]=b[i];
m++;
}
else if(i==strlen(b)-1)
{
k=1;
j=i;
while(1)
{
if(isdigit(b[j]))
{
n[m]+=(b[j]-'0')*k;
k*=10;
j--;
}
else if(!isdigit(b[j])||j<0)
break;
}
m++;
}
}
}
void main()
{
char b[100];
char fh[50]={0};
int n[50]={0},m=0,i;
cout<<"Please Input an expression"<<endl;
cin>>b;
sort(b,n,fh,m);
for(i=0;i<m;i++)
{
if(fh[i]!=0)
cout<<fh[i]<<" ";
}
cout<<endl;
for(i=0;i<m;i++)
{
if(n[i]!=0)
cout<<n[i]<<" ";
}
cout<<endl;
}
分离表达式中的数字和运算符
最新推荐文章于 2021-09-12 14:48:28 发布