임 이진수로 문자열을 읽을 때 문자열 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);
문자의 범위.
해결책을 상세히 설명해 주시겠습니까 –
@MinkeshJain : 완료, 제 편집을 참조하십시오. – HighCommander4
이진수가 포함 된 문자열의 의미를 모르겠습니다. 그러나 문자열 (또는 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';
}
값을 반환하지 않으므로 void 함수 여야합니다. –
'std :: reverse' **는 ** void 함수입니다. http://en.cppreference.com/w/cpp/algorithm/reverse. –
@MaxLybbert 예, ** 그러나 **,'main()'은 구현 될 때 'void'가 아니며 값을 반환해야합니다. 이것은 @Wilhelm이 지적하려고했던 것입니다. – karlphillip
"2 진수로 읽음"이란 무엇을 의미합니까? 그 문자열은 "1100110"과 같은 것을 가질 것입니까? 디스크에서 바이너리 파일을 읽는 중입니까? –