1.无论是%s,还是cin输入都是遇见空格就停止输入,因此可以用gets(或者getline(cin,line);)来输入
2.关于枚举类型的问题,枚举是可以设定一系列值,不是一个结构,相当于定义变量,枚举定义时每个枚举值都有一个值,之后在定义枚举变量时,枚举变量是只可以赋值为枚举类型定义的变量
<div>#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;</div><div>
</div><div>//enum Number{zero=0,one,two,three,four,five,six,seven,eight,nine};</div><div>
</div><div>int StrtoNumber(char *number);
int numbertoint(int *number);</div><div>
</div><div>int main()
{
char str[100];
int a[3],b[3];
char number[10];
while(gets(str))
{
// cout<<str;
a[0]=a[1]=a[2]=b[0]=b[1]=b[2]=-1;
int m=0,n=0;
int j=0;
int flag=0;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]=='+')
{
flag=1;
}</div><div>
</div><div> else if(str[i]!=' ')
{
number[j++]=str[i];
}
else if(str[i]==' ')
{
number[j]='\0';
//printf("//%s\n",number);
j=0;
if(flag==0 && number[0]!='\0')
{
//printf("astr//%s\n",number);
a[m++]=StrtoNumber(number);
// printf("a##%d%d%d\n",a[0],a[1],a[2]);
}
else if(flag==1 && number[0]!='\0')
{
// printf("bstr//%s\n",number);
b[n++]=StrtoNumber(number);
// printf("b##%d%d%d\n",b[0],b[1],b[2]);</div><div>
</div><div> }</div><div>
</div><div> }
else if(str[i]=='=')
break;
}
m=n=0;
m=numbertoint(a);
n=numbertoint(b);
if(m==0&&n==0)
break;
else
printf("%d\n",m+n);
}
return 0;
}</div><div>
</div><div>int StrtoNumber(char *number)
{
int num=0;
if(strcmp(number,"one")==0)
num=1;
else if(strcmp(number,"two")==0)
num=2;
else if(strcmp(number,"three")==0)
num=3;
else if(strcmp(number,"four")==0)
num=4;
else if(strcmp(number,"five")==0)
num=5;
else if(strcmp(number,"six")==0)
num=6;
else if(strcmp(number,"seven")==0)
num=7;
else if(strcmp(number,"eight")==0)
num=8;
else if(strcmp(number,"nine")==0)
num=9;
return num;
}</div><div>
</div><div>int numbertoint(int *number)
{
int num;
if((number[0]==0&&number[1]==0) || (number[0]==0&&number[1]==-1))
num=0;
else if((number[0]==0&&number[1]!=-1))
num=number[1];
else if((number[0]!=0)&&(number[1]==-1))
num=number[0];
else if((number[0]!=0)&&(number[1]!=-1))
num=number[0]*10+number[1];
return num;
}
</div>