#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char arr[11][11]={"Zero", "One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Double"};
char s[100],s2[10];
int s3[10];
int length=0;
printf("input the char: \n");
gets(s);
printf("\n%s\n",s);
length=strlen(s);
printf("length is %d\n",length);
int i=0,k=0,j=0,d=0,m=-1;
while(isupper(s[i])&&i<length)
{
s2[k]=s[i];
while (islower(s[i+1]))
{
s2[++k]=s[++i];
}
s2[k+1]='\0';
i++;
for (j=0;j<=11;j++)
{
if (!(strcmp(s2,arr[j]))&&j<10)//找到对应英文单词
{
s3[++m]=j;
strcpy(s2," "); // 清空s2
k=0;
if (d==1) //double put two number
{
s3[++m]=j;
d=0;
break;
}
break;
}
else if (!(strcmp(s2,arr[j]))&&j==10) //find Double
{
d=1;
strcpy(s2," ");
k=0;
if (s[i]!='D')
break; //跳出离自己最近的循环
else if (s[i]=='D'&&s[i+1]=='o'&&s[i+2]=='u'&&s[i+3]=='b'&&s[i+4]=='l'&&s[i+5]=='e')
{
printf("error as twoDuble");
return 0; //two double
}
else if(s[i]='D')
{
printf("error as Duble"); //Duble之类的
return 0;
}
}
} //for循环
if (j>10)
{
strcpy(s2," ");
k=0;
printf("error as Fuck\n"); // as Fuck
return 0;
}
}
//while
if(!isupper(s[i])&&i<length)
{
printf("input not daxie!");
return 0;
}
if (d==1)
{
printf("put error (Double结尾)\n");
return 0;
}
for(i=0;i<=m;i++)
printf("%d",s3[i]);
return 0;
}
#include<string.h>
#include<ctype.h>
int main()
{
char arr[11][11]={"Zero", "One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Double"};
char s[100],s2[10];
int s3[10];
int length=0;
printf("input the char: \n");
gets(s);
printf("\n%s\n",s);
length=strlen(s);
printf("length is %d\n",length);
int i=0,k=0,j=0,d=0,m=-1;
while(isupper(s[i])&&i<length)
{
s2[k]=s[i];
while (islower(s[i+1]))
{
s2[++k]=s[++i];
}
s2[k+1]='\0';
i++;
for (j=0;j<=11;j++)
{
if (!(strcmp(s2,arr[j]))&&j<10)//找到对应英文单词
{
s3[++m]=j;
strcpy(s2," "); // 清空s2
k=0;
if (d==1) //double put two number
{
s3[++m]=j;
d=0;
break;
}
break;
}
else if (!(strcmp(s2,arr[j]))&&j==10) //find Double
{
d=1;
strcpy(s2," ");
k=0;
if (s[i]!='D')
break; //跳出离自己最近的循环
else if (s[i]=='D'&&s[i+1]=='o'&&s[i+2]=='u'&&s[i+3]=='b'&&s[i+4]=='l'&&s[i+5]=='e')
{
printf("error as twoDuble");
return 0; //two double
}
else if(s[i]='D')
{
printf("error as Duble"); //Duble之类的
return 0;
}
}
} //for循环
if (j>10)
{
strcpy(s2," ");
k=0;
printf("error as Fuck\n"); // as Fuck
return 0;
}
}
//while
if(!isupper(s[i])&&i<length)
{
printf("input not daxie!");
return 0;
}
if (d==1)
{
printf("put error (Double结尾)\n");
return 0;
}
for(i=0;i<=m;i++)
printf("%d",s3[i]);
return 0;
}