【发布时间】:2017-09-15 22:41:29
【问题描述】:
我正在尝试在 revStr.at(j) = str.at(size); 下方的 C++ 代码行中反转字符串
但它不会改变revStr 中的任何元素。
有没有其他方法可以在不使用任何库的情况下做到这一点。
#include <iostream>
#include<sstream>
#include <iterator>
using namespace std;
int main() {
ostringstream d;
long long c = 123456789;
d << c;
//cout << c << endl;
string str = d.str();
//cout << str.at(0) << endl;
int size = str.size() - 1;
//cout << size << endl;
ostringstream e;
e << str;
string revStr = e.str();
for (int i = size; size==0; size--) {
//cout << str.at(size);
int j = 0;
revStr.at(j) = str.at(size);
j++;
} // End For
cout << "Original String is :" << str << endl;
cout << "Reversed String is :" << revStr << endl;
}
【问题讨论】:
-
为什么要在没有任何库的情况下这样做?您确实意识到
ostringstream、string和cout都在标准 C++ 库中,因此不使用任何库将意味着您依赖非标准的输出机制。使用标准库std::reverse(revStr.begin(), revStr.end())只需一行即可满足要求。