以字符串形式打印出的 C++ 整数位?

Posted

技术标签:

【中文标题】以字符串形式打印出的 C++ 整数位?【英文标题】:C++ integer digits printed out in string? 【发布时间】:2017-02-07 07:04:46 【问题描述】:

所以我正在编写的代码(用于学校)假设将用户给定的整数打印在字符串中(示例输入:154 | 输出:一五四)。

目前我几乎想通了,除了它是倒退的!需要弄清楚如何以正确的方式打印(我的会打印出四五一)。

#include <iostream>
#include <string>

using namespace std;

void toString(int x) 
while (x > 0)

    int digit = x % 10;
    x /= 10;
    switch (digit) 
    case 1:
        cout << "One ";
        break;
    case 2:
        cout << "Two ";
        break;
    case 3:
        cout << "Three ";
        break;
    case 4:
        cout << "Four ";
        break;
    case 5:
        cout << "Five ";
        break;
    case 6:
        cout << "Six ";
        break;
    case 7:
        cout << "Seven ";
        break;
    case 8:
        cout << "Eight ";
        break;
    case 9:
        cout << "Nine ";
        break;
    case 0:
        cout << "Zero ";
        break;
    
   


int main()

int num;

cout << "Please enter a positive number" << endl;
cin >> num;

while (num > 0)

    toString(num);
    cout << "\nPlease enter a positive number" << endl;
    cin >> num;
 

cout << "You entered a number less than or equal to zero"
    << endl << "the program was terminated" << endl;

system("pause");
return 0;

【问题讨论】:

【参考方案1】:

基本上有三种方法可以解决您的问题:

    不是打印单词,而是将它们放在一个字符串中,然后将字符串中的单词反转。

    反转循环前的数字。

    从数字的另一端开始,计算位数,(在 154 的示例中)从百位开始,然后是十位,最后是个位。

最简单的是第一个替代方案的变体,其中不是创建包含单词的字符串然后反转单词,而是将单词放入容器中(例如std::vector),然后反转容器或从从后到前。

【讨论】:

以上是关于以字符串形式打印出的 C++ 整数位?的主要内容,如果未能解决你的问题,请参考以下文章

2022-01-30:最小好进制。 对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制。 以字符串的形式给出 n, 以字符串的形式返回 n 的

MySQL浮点数和定点数

Oracle截取固定位数的小数方法总结

在 C++ 中将唯一字符串转换为唯一整数值

php中echoprintprint_rvar_dumpvar_export区别

c_cpp 在c中以字符串形式打印所有字符