C++ 将字母表示为两位数字,将一个大数字转换为一个单词

C++ 将字母表示为两位数字,将一个大数字转换为一个单词,c++,C++,我有以下问题: 字母a到z由数字10-35表示,例如a=10,b=11。。。z=35 给定一个整数,如果数字的每两位数代表一个字母,您将如何将其转换为单词/句子?(整数是解密过程的输出,因此始终适用于转换) e、 g 31232612-->“单词” 我认为最好的方法是使用%将整数分割成两位数的块,并使用以10为底的log来确定数字的大小?我不确定这到底是怎么回事,我真的对其他人如何解决这个问题感兴趣 我不确定是否要上传我已有的任何代码,或者是否将其留白,以防有人想从头开始,所以请告诉我 谢谢你的

我有以下问题:

字母a到z由数字10-35表示,例如a=10,b=11。。。z=35

给定一个整数,如果数字的每两位数代表一个字母,您将如何将其转换为单词/句子?(整数是解密过程的输出,因此始终适用于转换)

e、 g 31232612-->“单词”

我认为最好的方法是使用%将整数分割成两位数的块,并使用以10为底的log来确定数字的大小?我不确定这到底是怎么回事,我真的对其他人如何解决这个问题感兴趣

我不确定是否要上传我已有的任何代码,或者是否将其留白,以防有人想从头开始,所以请告诉我


谢谢你的反馈!(我的第一印象是,所有琐碎的事情都被认为是家庭作业,所以我想我会说这不是,我这么做只是因为我在努力提高,我觉得这类事情很有趣,我想我会分享的)。

你必须这样做:

int main()
{
   int numb=31231712;
   std::stack<char> mystack;
   int mod;
   while ((mod=numb%100)!=numb){
       char c=mod+88;
       mystack.push(c);
       numb=numb/100;
   }
   char c=mod+88;
   mystack.push(c);
   while (!mystack.empty())
   {
      cout << mystack.top();
      mystack.pop();
   }
   cout << '\n';
}
intmain()
{
int numb=31231712;
std::stack mystack;
整数模;
而((mod=numb%100)!=numb){
字符c=mod+88;
mystack.push(c);
麻木=麻木/100;
}
字符c=mod+88;
mystack.push(c);
而(!mystack.empty())
{

我写了这段代码,我想它可以帮助你:)

#包括
#包括
#包括
使用名称空间std;
int main(){
字串=”;
字符串整数;
cin>>整数;
对于(int i=integer.size()-1;i>=0;i-=2){
int temp=整数[i]-“0”;
如果(i)
温度+=10*(整数[i-1]-“0”);
单词+=(字符)('a'+(temp-10)+1);
}
相反(word.begin(),word.end());

我想你应该继续你的方法。你可以使用%运算符找到2位数字,然后使用ascii将其转换为字符,只需添加一个常量。你可以继续将其推入堆栈,然后将其弹出以获得单词。我可以将2位数字转换为字母,我只是在将其“拆分”为2个字母时遇到问题分块。你说的拆分到底是什么意思?你说的是把大整数拆分成更小的两位数部分吗?是的,这正是我的意思。tw 31231712-/->“word”,是31232612,我想是87,我会用“word”来纠正这个错误我会给你一个让你知道的,非常感谢!你对88是正确的,我会如何反转它,使它出现在正确的顺序中?正如我在回答中所说的,使用C++中的STD::堆栈,而不是CUT,继续将字符推到堆栈中,当最后一个字符被添加到堆栈中时,通过弹出Fras Fr来循环堆栈。我会用谷歌搜索你说的话,看看我能不能做到!非常感谢,我没有投赞成票,因为我没有15个声誉,收到一条消息说“你必须有15个声誉才能投赞成票”,而且当我运行它时,它对我不起作用,我不确定为什么,我只是得到一个空白输出。
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main () {

   string word = "";
   string integer;
   cin >> integer;

   for (int i = integer.size() - 1; i >= 0; i -= 2) {

           int temp = integer[i] - '0';
       if (i)
        temp += 10 * (integer[i - 1] - '0');

       word += (char)('a' + (temp - 10) + 1);
   }

   reverse(word.begin(), word.end());
   cout << word << endl;

   return 0;
}