C++ 如何反转std::字符串?
我想知道当我用二进制数读取字符串时,如何反转字符串C++ 如何反转std::字符串?,c++,string,binary,reverse,C++,String,Binary,Reverse,我想知道当我用二进制数读取字符串时,如何反转字符串temp istream& operator >>(istream& dat1d, binary& b1) { string temp; dat1d >> temp; } 试一试 编辑:根据要求详细说明 分别代表“反向开始”和“反向结束”的string::rbegin()和string::rend(),将反向迭代器返回到字符串中。这些
temp
istream& operator >>(istream& dat1d, binary& b1)
{
string temp;
dat1d >> temp;
}
试一试
编辑:根据要求详细说明
分别代表“反向开始”和“反向结束”的string::rbegin()
和string::rend()
,将反向迭代器返回到字符串中。这些对象支持标准迭代器接口(operator*
取消对元素的引用,即字符串的字符,operator++
前进到“下一个”元素),例如rbegin()
指向字符串的最后一个字符,rend()
指向第一个字符,推进迭代器会将其移动到前一个字符(这就是使其成为反向迭代器的原因)
最后,我们将这些迭代器传递到的构造函数是以下形式的字符串构造函数:
template <typename Iterator>
string(Iterator first, Iterator last);
模板
字符串(迭代器优先,迭代器最后);
它接受一对表示字符范围的任何类型的迭代器,并将字符串初始化为该字符范围。我不确定包含二进制数的字符串是什么意思。但要反转字符串(或任何与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';
}
#包括
#包括
#包括
int main()
{
std::字符串foo(“foo”);
std::字符串副本(foo);
std::cout“读入二进制数”是什么意思?字符串将有类似“1100110”的内容?您正在从磁盘读取二进制文件?它应该是一个void函数,因为它不返回值std::reverse
是一个void
函数:。@maxlybert是,但是,main()<代码> >不是<代码>空白>代码>,应该返回一个值。这是@ Wilhelm试图指出的。我可以添加“返回0”,但是C++发生了一个特殊的情况:<代码>主< /代码>:“如果控件到达main
的末尾时未遇到return语句,则其效果是执行return 0;
”(,特殊属性列表中的第4项)。在第二行,您的意思是键入“string reverse(…)”而不是“string reversed(…)”?换句话说,“reversed”一词应该是”反向“@Job\u mummer\u 2020它只是一个变量名,可以是任何名称
#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';
}