내가 파이썬에서 문자열 x='wow'
이 있다면, 난 그렇게처럼 __add__
기능을 사용하여 자신이 문자열을 연결할 수 있습니다 :간단한 문자열 연결
x='wow'
x.__add__(x)
'wowwow'
가 어떻게 C++에서이 작업을 수행 할 수 있습니다?
내가 파이썬에서 문자열 x='wow'
이 있다면, 난 그렇게처럼 __add__
기능을 사용하여 자신이 문자열을 연결할 수 있습니다 :간단한 문자열 연결
x='wow'
x.__add__(x)
'wowwow'
가 어떻게 C++에서이 작업을 수행 할 수 있습니다?
의미 적, 파이썬 코드의 상당
std::string x = "wow";
x + x;
즉 x
와 x
의 연결이 임시 문자열을 생성하고 결과를 던져 같은 것입니다. 다음 작업을 수행 할 것 x
에 추가하려면
std::string x = "wow";
x += x;
참고 따옴표 "
. 파이썬과는 달리 C++에서는 작은 따옴표가 단일 문자에 사용되며 큰 따옴표로 묶인 문자열 리터럴에 대해서는 큰 따옴표가 사용됩니다.
참조 : std::string
참조.
그런데 파이썬에서는 보통 __add__()
메서드를 호출하지 않습니다. 당신은 최초의 C++ 예에 해당하는 구문을 사용
x = 'wow'
x + x
__add__()
방법은 클래스의 "플러스"연산자를 제공하는 단지 파이썬 방법입니다.
덕분에 유용했다 –
질문은'__add__'에 관한 것이고, + +는 C++에서'+'이며,'+ ='는 아닙니다. –
@ daknøk 귀하의 요지를 봅니다. 제목에 "문자열에 추가"라고 표시되지만 코드는 두 개의 문자열을 연결하고 그 결과를 반환합니다. 나는 나의 예를 고칠 것이다. – juanchopanza
당신은 operator <<
와 std::string
및 operator+
또는 operator+=
또는 std::stringstream
를 사용할 수 있습니다.
std::string x("wow");
x = x + x;
//or
x += x;
여기도 std::string::append
입니다.
덕분에 도움이되었다 –
std::string x = "wow"
x = x + x;
당신은 C++에서 문자열을 연결하는 +
연산자를 사용할 수 있습니다
std::string x = "wow";
x + x; // == "wowwow"
파이썬에서 당신은 대신 __add__
의 +
사용할 수 있습니다 (그리고 +
을 .__add__
보다 파이썬 간주됩니다) :
x = 'wow'
x + x # == 'wowwow'
그래서 C++에서 파이썬의'x .__ add __ (x)'에 해당하는 것은'operator + (x, x)'일 것입니다, 맞습니까? 문자열에 대한'+'가 멤버가 아닌지 확실하지 않습니다. _Sigh._) – sbi
@sbi 예, 파이썬의'__add__'은 C++의'operator +'와 같습니다. –
일반적으로 두 개의 별개의 문자열을 연결할 때 단순히 0을 사용할 수 있습니다 당신이 추가 할 문자열에에 :
string a = "test1";
string b = "test2";
a += b;
는
제대로 a=="test1test2"
그러나이 경우 당신은 단순히 그 자체에 문자열을 추가 할 수 없습니다 얻을 때문에 추가 변경하는 행위 소스 둘 것 목적지.즉, 이것은 잘못된 것입니다 :
string x="wow";
x += x;
대신, 간단한 해결책은 단지 (자세한 선명도) 임시을 만드는 것입니다 :
string x = "wow";
string y = x;
y += x;
... 다음이를 다시 교환 :
x = y;
'x + = x '가 왜 잘못 되었습니까? 표준 * 그것을 작동하는 데 필요합니다. –
@ R.MartinhoFernandes : 어디서? –
'operator + ='의 효과는 §21.4.6.2/9에 설명 된'char const * '와 크기를 취하는 append 함수와 동일하게 정의됩니다. 그것은 어떤 방식 으로든 작동하는 방식으로 말입니다. –
'x + = x;'는 어떻습니까? 사실 아주 직관적입니다. – chris
이것은 간단한 질문입니다. – jogojapan
(1) 네 가지 모두 네 가지 대답이 잘못되었습니다. (2) 질문의 마감이 잘못되었습니다. 이런. –