在 C 中将整数结果转换为字符串或单词

标签 c

所以我这里有一个问题。我正在做我的类作业,即创建一个计算器,但每个结果都必须用一个单词来表示,例如:

int a,b,c;
printf("Input first number:");
scanf("%d", &a);
printf("Input second number:"):
scanf("%d", &b);
c=a+b;
printf("The result are: %d", c);                          
printf("If in words, it is  = ");
switch(c){
case 0:printf("abcdef");break;
case 1:printf("bc");break;
case 2:printf("abged");break;
case 3:printf("abgcd");break;
case 4:printf("fbgc");break;
case 5:printf("afgod");break;
case 6:printf("fgcde");break;
case 7:printf("abc");break;
case 8:printf("abcdefg");break;
case 9:printf("abcdfg");break;
default :printf("error");break;

所以我运行它时的结果是:

Input first number : 12

input second number : 12

The result are: 24

If in words, it is = error

所以我在这里感到困惑的是我如何将 c 结果打印为单词?所以我想要从输出中得到的是

Input first number : 12

input second number : 12

The result are : 24

If in words, it is = abged fbcg

到目前为止,我正在寻找答案,但找不到。如果这里有人可以帮助我,请帮助我。

提前致谢

*已编辑

最佳答案

what i want from my output is

Input first number : 12

input second number : 12

The result are : 24

If in words, it is = abged fbcg

如果你写的是“二四”而不是“abged fbcg”,问题会更清楚......

您显然想分别打印“十”和“个”。 (也可能是“数百个”。)

由于这是一项家庭作业,我只会给你一些提示,而不是完整的解决方案:

  • 如果将 c 除以 10,就会得到“十”。如果您再次将该结果除以 10,您将得到“百”。
  • 如果可以接受“二四”之类的内容,则可以对“十”和“个”使用相同的查找。如果您确实需要“二十四”,则需要查找“十”并查找“个”。
  • 您需要先打印最高位(最左边)数字的单词,但您可以从我上面提到的除 10 的除法中得到它。因此,在查找“十”(也许还有“百”)时,您需要将“个”的查找结果“存储”在某个地方。存储可能是...
    • ...数组。请小心检查输入的数字是否与数组中的空间相符(这样,如果有人输入太大的数字,就不会溢出)。如果您做得正确,则无需存储您查找的字符串,因为您可以存储指向这些字符串的指针
    • ...递归函数。 (一个用除以 10 的值调用自身,然后查找调用它的值的“1”——您可以通过模运算符 c % 10 得到它。)

关于在 C 中将整数结果转换为字符串或单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47259136/

相关文章:

c - 一个将转换数字基数和非法输入错误的函数

C RPC 服务器 malloc 内存损坏

python - 协议(protocol)中的 CRC 计算不正确。一种是使用zlib实现的,另一种是用函数计算的

c - AVX 加载指令在 cygwin 上失败

c - 绑定(bind)套接字: SIGSEGV

c - 为什么这个 malloc 在 C 中不起作用?

c - Typedef 参数和函数

c - 如何强制openGL绘制非凸填充多边形

c - 每次登录时为服务器分配静态/相同的 IP 地址

使用指针的strcat的c程​​序