林試圖找出如何扭轉串temp
當我在二進制數讀取字符串如何反轉std :: string?
istream& operator >>(istream& dat1d, binary& b1)
{
string temp;
dat1d >> temp;
}
林試圖找出如何扭轉串temp
當我在二進制數讀取字符串如何反轉std :: string?
istream& operator >>(istream& dat1d, binary& b1)
{
string temp;
dat1d >> temp;
}
嘗試
string reversed(temp.rbegin(), temp.rend());
編輯:按要求詳細說明。
string::rbegin()
和string::rend()
,這分別代表「反轉開始」和「反轉端」,返回反向迭代器到字符串。這些是支持標準迭代器接口的對象(operator*
以取消引用元素,即字符串的字符,而operator++
前進到「下一個」元素),這樣rbegin()
指向字符串的最後一個字符,rend()
指向第一個,並推進迭代器將其移動到以前的字符(這是什麼使它成爲一個反向迭代器)。
最後,我們傳遞這些迭代到構造的形式爲一個字符串構造:
template <typename Iterator>
string(Iterator first, Iterator last);
它接受一對任何類型表示一個字符範圍的迭代器,以及串初始化到字符範圍。
您能否詳細說明解決方案 – 2017-02-16 08:41:28
@MinkeshJain:完成,請參閱我的編輯。 – HighCommander4 2017-02-16 18:55:33
我不確定你的意思是什麼含有二進制數字的字符串。但是,對於字符串(或任何兼容STL的容器),您可以使用std::reverse()
。 std::reverse()
工作在地方,所以你可能想使字符串第一個副本:
#include <algorithm>
#include <iostream>
#include <string>
int main()
{
std::string foo("foo");
std::string copy(foo);
std::cout << foo << '\n' << copy << '\n';
std::reverse(copy.begin(), copy.end());
std::cout << foo << '\n' << copy << '\n';
}
你是什麼意思「在二進制數讀」是什麼意思?該字符串將有像「1100110」?你是從磁盤讀取二進制文件? – 2011-02-10 00:15:11