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