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

C++ integer digits printed out in string?

本文关键字:整数 数字 式打印 字符串 C++      更新时间:2023-10-16

所以我正在处理的代码(用于学校(假设将用户给定的整数打印成字符串(示例输入: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. 不要打印单词,而是将它们放在字符串中,然后反转字符串中的单词。

  2. 反转循环前的数字。

  3. 从数字的另一端开始,通过计算位数,(在154的例子中(从百开始,然后做十,最后是一。

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