C++以字符串形式打印出来的整数数字
C++ integer digits printed out in string?
所以我正在处理的代码(用于学校(假设将用户给定的整数打印成字符串(示例输入: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;
}
基本上有三种方法可以解决您的问题:
-
不要打印单词,而是将它们放在字符串中,然后反转字符串中的单词。
-
反转循环前的数字。
-
从数字的另一端开始,通过计算位数,(在
154
的例子中(从百开始,然后做十,最后是一。
最简单的是第一种选择的变体,其中不是创建一个包含单词的字符串,然后反转单词,而是将单词放入容器中(例如 std::vector
(,然后反转容器或从后到前迭代。
相关文章:
- 检查输入是否不是整数或数字
- 如何找到大于整数的最小数字
- 在数字之间插入 + 或 - 符号以使其等于整数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 整数区间(或 int 数组)中每个数字的出现次数
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 必须首先打印向量 v1 中最接近整数 x 的数字<int>
- 分隔整数 (C++) 的数字
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- C++:从文件中读取字符串和整数,并获得最大数字
- 如何在C ++中替换整数的前两位数字?
- 如何计算整数的十进制数字?
- 如何计算整数链中使用了多少次数字?
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- R 中的算术在数字上比整数更快。这是怎么回事?
- 我想使用 std::stoi 函数在 cpp 中将字符串转换为整数,因为我想在字符串中找到不同数字的总和(在下级酶中)
- C++以字符串形式打印出来的整数数字
- 使用C - CIN获取几个整数数字,然后将它们放入数组中
- C++整数数字逐行
- 为什么将'0'添加到整数数字可以转换为字符?