数字到单词 [英] digits to words

查看:59
本文介绍了数字到单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你可以给我一个将数字换成单词的rpogram吗?

例如:输入:1435输出:一千四百三十五......

解决方案

ARMAS写道:


你能给我一个将数字改成单词的rpogram吗?

Ex:输入:1435输出:一千四百三十五......



是的,但DYOH!


如果你告诉我们你到目前为止的努力,我们将很乐意提供帮助。但是我们会以这样的方式给你带来伤害你的事情,因此你可以掠夺高质量的教育,这会让你付出沉重的代价。 />





1月24日上午9:56,user923005 < dcor ... @ connx.comwrote:


ARMAS写道:


你能给我吗?将数字改为单词的rpogram ??

例如:输入:1435输出:一千四百三十五......是的,但是DYOH!



如果你告诉我们你到目前为止的努力,我们将很乐意提供帮助。但是我们会以这样的方式给你带来伤害,因为你不会伤害到你,因此你可以掠夺高质量的教育,这会让你付出沉重的代价。


>> ARMAS:ok xur ..我会继续努力....你也可以更好地工作。呵呵呵...... pEACE兄弟!!!!


" ARMAS" < sm ******** @ gmail.comwrites:


你能给我一个将数字换成单词的rpogram吗?

Ex:输入:1435输出:一千四百三十五......



这是我多年前写的一个。


#include< stdio.h>

#include< stdlib.h>

#include< string .h>


char * ordinal(char buf [1024],无符号​​值);


int

main(int argc,char * argv [])

{

char buf [1024];


if(argc! = 2)

{

printf(" usage:ordinal< number> \ n");

返回EXIT_FAILURE;

}


ordinal(buf,atoi(argv [1]));

puts(buf);

返回EXIT_SUCCESS;

}


char *

ordinal(char buf [1024],无符号​​值)

{

static const char * const powers []

= {" man"," oku"};


static const char * const values [] [9] =

{

{" sen",0," sanzen",0,0,0,0," hassen",0},

{" hyaku" ;,0,sanbyaku,0,0,roppyaku,0,happyaku,0},

{" juu",0,0,0,0, 0,0,0,0},

{" ichi,ni,san,yon,go,roku, nana,hachi,kyuu},

};


static const char * const * const ones = values [3];


char * cp = buf;


if(value == 0)

{

strcpy(buf,rei);

返回buf;

}


{

int part_stack [4];

int * part_ptr = part_stack;


for(;值;值/ = 10000)

* part_ptr ++ = value%10000;


while(part_ptr part_stack)

{

int index [4];

int p,i;


p = * - part_ptr;

for (i = 3; i> = 0; i--)

{

index [i] = p%10;

p / = 10;

}


for(i = 0; i< 4; i ++)

{

int c = index [i];

if(c!= 0)

{

if(values [i] [c - 1] == 0)

cp + = sprintf(cp,"%s%s",ones [c - 1],values [i] [0]);

else

cp + = sprintf(cp,"%s",values [i] [c - 1]);

}

}


if(* part_ptr&& part_ptr part_stack)

cp + = sprintf(cp,"% s",powers [part_ptr - part_stack - 1]);

}

}


cp [-1] = 0;

返回buf;

}


/ *

局部变量:

compile-command:" gcc -W -Wall -ansi -p edantic ordinal-jp.c -o ordinal-jp"

结束:

* /


-

我错过了什么吗?

--Dan Pop


could you give me the rpogram in changing digits into words??
Ex: input:1435 output:one thousand four hundred thirty five......

解决方案

ARMAS wrote:

could you give me the rpogram in changing digits into words??
Ex: input:1435 output:one thousand four hundred thirty five......

Yes, but DYOH!

If you show us your effort so far, we''ll be glad to help. But we would
never harm you in such a way as to do your homework for you, therefore
robbing you of a quality education that is costing you so dearly.




On Jan 24, 9:56 am, "user923005" <dcor...@connx.comwrote:

ARMAS wrote:

could you give me the rpogram in changing digits into words??
Ex: input:1435 output:one thousand four hundred thirty five......Yes, but DYOH!


If you show us your effort so far, we''ll be glad to help. But we would
never harm you in such a way as to do your homework for you, therefore
robbing you of a quality education that is costing you so dearly.

>>ARMAS: ok xur.. I''ll work on it.... and you better work on it too. hehehe.... pEACE brother!!!!


"ARMAS" <sm********@gmail.comwrites:

could you give me the rpogram in changing digits into words??
Ex: input:1435 output:one thousand four hundred thirty five......

Here''s one I wrote a number of years ago.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *ordinal (char buf[1024], unsigned value);

int
main (int argc, char *argv[])
{
char buf[1024];

if (argc != 2)
{
printf ("usage: ordinal <number>\n");
return EXIT_FAILURE;
}

ordinal (buf, atoi (argv[1]));
puts (buf);
return EXIT_SUCCESS;
}

char *
ordinal (char buf[1024], unsigned value)
{
static const char *const powers[]
= {"man", "oku"};

static const char *const values[][9] =
{
{"sen", 0, "sanzen", 0, 0, 0, 0, "hassen", 0},
{"hyaku", 0, "sanbyaku", 0, 0, "roppyaku", 0, "happyaku", 0},
{"juu", 0, 0, 0, 0, 0, 0, 0, 0},
{"ichi", "ni", "san", "yon", "go", "roku", "nana", "hachi", "kyuu"},
};

static const char *const *const ones = values[3];

char *cp = buf;

if (value == 0)
{
strcpy (buf, "rei");
return buf;
}

{
int part_stack[4];
int *part_ptr = part_stack;

for (; value; value /= 10000)
*part_ptr++ = value % 10000;

while (part_ptr part_stack)
{
int index[4];
int p, i;

p = *--part_ptr;
for (i = 3; i >= 0; i--)
{
index[i] = p % 10;
p /= 10;
}

for (i = 0; i < 4; i++)
{
int c = index[i];
if (c != 0)
{
if (values[i][c - 1] == 0)
cp += sprintf (cp, "%s%s ", ones[c - 1], values[i][0]);
else
cp += sprintf (cp, "%s ", values[i][c - 1]);
}
}

if (*part_ptr && part_ptr part_stack)
cp += sprintf (cp, "%s ", powers[part_ptr - part_stack - 1]);
}
}

cp[-1] = 0;
return buf;
}

/*
Local variables:
compile-command: "gcc -W -Wall -ansi -pedantic ordinal-jp.c -o ordinal-jp"
End:
*/

--
"Am I missing something?"
--Dan Pop


这篇关于数字到单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆