使用堆栈将数字转换为字符
Using Stacks to convert numbers into characters
我写了下面的代码来将数字转换为字母。我的问题是程序正确转换了用户输入的第一个数字,但它为其他人提供了与第一个相同的字母。
例如,如果用户输入数字012
则程序会将其转换为ABC
而不是AAA
。
我也在system ("pause")
中遇到错误,我该如何解决?
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n;
string t,u="";
stack<string> s;
cout<<"Enter a number n: ";
cin>>n;
for(int i=0;i<n;i++){
cin>>t;
for(int j=0;j<t.length();j++){
if(t[i]=='0')
u= u+'A';
if(t[i]=='1')
u= u+'B';
if(t[i]=='2')
u= u+'C';
if(t[i]=='3')
u= u+'D';
if(t[i]=='4')
u= u+'E';
if(t[i]=='5')
u= u+'F';
if(t[i]=='6')
u= u+'G';
if(t[i]=='7')
u= u+'H';
if(t[i]=='8')
u= u+'I';
if(t[i]=='9')
u= u+'J';
}
s.push(u);
}
while(!s.empty()){
cout<<s.top()<<" ";
s.pop();
}
system("pause"); //error
return 0;
}
内部for
循环中的循环变量j
,但在循环中使用i
而不是j
:
for (int j = 0; j < t.length(); j++)
{
if(t[i] == '0') //<<<< use j instead of i here
...
}
如果您的代码被正确缩进/格式化,您就会自己发现。
相关文章:
- HEX值到wchar_t字符(UTF-8)的转换
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 转换特殊字符(UTF-8)
- 将转换字符键入 int 以用作向量C++的索引
- 将字符随机转换为大写的函数
- 尝试将字符串/字符转换为整数会产生意外结果
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 转换字符时Arduino DUE 和 Arduino UNO 之间的区别
- 如何在C++中正确重载运算符转换字符*?
- 如何转换数据结构以在 c++ 中转换字符*
- 不兼容的转换字符
- 将转换字符数组[16]键入为int 128位
- 在c++中转换字符编码
- 使用递归转换字符
- 如何在Objective-C/C/C++中转换字符和字节的位置
- C++到Pep/8汇编语言的转换——字符数组
- 转换字符>十六进制