数字到单词 [英] digits to words
问题描述
例如:输入: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屋!