C++ 倒数

C++ 倒数,c++,reverse,C++,Reverse,我正试图把一个数字的数字颠倒过来。我在里面用了字符串。我必须使用字符串。程序只需给出最后一位数字并停止执行。例如,如果我把123作为输入,我只得到3。相反,我应该是321 #include <iostream> #include <string> using namespace std; int main() { int a,b=0; cin>>a; string str1="", str=""; for(int i=0;a>0

我正试图把一个数字的数字颠倒过来。我在里面用了字符串。我必须使用字符串。程序只需给出最后一位数字并停止执行。例如,如果我把123作为输入,我只得到3。相反,我应该是321

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int a,b=0;
    cin>>a;
    string str1="", str="";
 for(int i=0;a>0;i++)
 {

     b=a%10;
     str=to_string(b);
     a=a/10;
     str1=str1+str;

 }
 cout<<str1.length();
 }
#包括
#包括
使用名称空间std;
int main()
{
int a,b=0;
cin>>a;
字符串str1=“”,str=“”;
对于(int i=0;a>0;i++)
{
b=a%10;
str=至_字符串(b);
a=a/10;
str1=str1+str;
}

cout您打印的是字符串长度,而不是字符串本身。

只需更改此
cout您打印的是字符串的长度。length()是字符串提供的内置函数。请删除.length()重新运行它关键字from cout命令,即cout您正在打印字符串长度。将数字转换为字符串一次,然后从
str.size()向后循环-1
?很抱歉,我无法向后理解循环。有一种更简单的方法来实现这一点。将原始的
int
转换为
std::string
,然后将字符串传递到
std::reserve()
,然后输出字符串。不需要手动循环。
intmain(){int a;cin>>a;string str to_string(a);反转(str.begin(),str.end());cout@zimmadwaraich反向循环示例:
string str=to_string(a);for(int i=str.size()-1;i>=0;--i){str1+=str[i];}
-但使用雷米建议的现成的
std::reverse
更好。@zimmad不提。@umair我在伊斯兰堡Bahria学习。嗯,听到巴基斯坦人的回答,我有点惊讶。你在哪个校园学习?伊斯兰堡?嘿,既然我看到你是新用户,评论只是为了澄清或指向o点但是帖子中的问题请避免使用它,顺便说一句,我的名字是Umar。事实上,我已经从FAST Nu-Lahore校区毕业,担任软件工程师。虽然这个解决方案有效,但当调用
到\u string
的值在0到9之间时,会有大量不必要的开销。最简单的方法是将这种值转换为文本表示的方法是:<代码> B+' 0 ' < /code >。C++标准要求表示数字“代码>‘0’…’9' <代码>的代码点必须是连续的和增加的,因此这可以与任何字符编码一起使用。
int main()
{
    int a,b=0;
    cin>>a;
    string str1="", str="";
    cout << a << "\n";
    while (a>0)
    {
        b=a%10;
        str=to_string(b);
        a=a/10;
        str1=str1+str;
    }
 cout<<str1;
}