//如:
//输入:oneaatwofour
//输出:124
#include<stdio.h>
#include<string.h>
int Change(char str[128], int num, int count, int n, int flag,int flag2)
{
char EnglishNum[10][5] = { {"zero"} ,{"one"},{"two"},{"three"},{"four"},{"five"},{"six"},{"seven"},{"eight"},{"nine"} };
int Num[10] = { 4,3,3,5,4,4,3,5,5,4 };
if (str[n] < 'a' || str[n] > 'z')
{
if(flag2 == 1)//标志有规则数字输出
printf("%d\n", num);
else
printf("NO!\n");
return 0;
}
for (int i = 0; i < 10; i++)
{
for (; count < Num[i] && str[n + count] == EnglishNum[i][count]; count++)
{
if (count == Num[i] - 1)
{
if (flag == 0 && i == 0)
{
//flag == 0,如果标志首位输入"zero",直接输出 0
printf("0");
flag = 1;
}
num = num * 10 + i;
n += Num[i];
flag2 = 1;
return Change(str, num, 0, n, flag,1);
}
}
count = 0;
}
n++;
return Change(str, num, 0, n, 1, flag2);
}
int main()
{
char str[128] = { 0 };
int num = 0, count = 0, n = 0, flag = 0,flag2 = 0;
gets(str);
Change(str, num, count, n, flag,flag2);
}
定义一个函数,功能为:输入一串字符,将字符串中的英文数(0~9)转换为整型保存,最后输出
最新推荐文章于 2023-04-02 00:32:57 发布