본문 바로가기

Information Technology/C++

[C++] string 대입, 교환, 덧붙이기, 삽입

이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요 ;)


이번 포스팅에서는 string의 대입, 교환, 덧붙이기, 그리고 삽입에 대해 알아보겠습니다.

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str1("one");

	string str2;
	str2 = str1;
	str2 = "two";
	str2.assign("two");

	cout << str2 << endl; // "two" 출력
}

string 자료형의 변수에 값을 입력하는 방법에는 위와 같이 다양한 방법들이 존재합니다.

str2.assign("two").append("three");
cout << str2 << endl; // "twothree" 출력

위의 코드 블록에서는 string의 기능 중 append를 사용했습니다. append란 덧붙이기라는 뜻으로 기존의 string 자료형 변수에 저장된 값 바로 뒤에 새로운 값을 덧붙여줍니다. append라는 이름을 가진 기능은 다른 여러 곳에서도 사용되니 의미를 알고 계시면 좋을 것 같습니다.

str1.append("three");
str1 += "three";
str1 = str2 + "four";

추가적으로 append는 위와 같은 방식으로도 사용할 수 있습니다.


int main()
{
	string str1("one");
	string str2("two");

	cout << str1 << " " << str2 << endl; // "one two" 출력

	std::swap(str1, str2);

	cout << str1 << " " << str2 << endl; // "two one" 출력
}

이번에 사용할 기능은 swap이라는 기능입니다. swap은 두 변수에 저장된 값을 교체해주는 기능으로

위의 코드 블록에서 나타나듯이 처음엔 각각 "one"과 "two"가 저장된 str1, str2의 값이 swap 함수를 사용한 뒤에는 서로 바뀐 값이 출력됩니다.

	str1.swap(str2);
	cout << str1 << " " << str2 << endl; // 다시 "one two" 출력

string 자료형 자체에도 swap 함수를 멤버 함수로 가지고 있기 때문에, 위와 같이 str1.swap(값을 교체할 변수)와 같은 형식으로 사용하면 std::swap과 같이 값이 변경되는 걸 볼 수 있습니다.


int main()
{
	string str("aaaa");
	str.insert(2, "bbb");
	cout << str << endl; // "aabbbaa" 출력
}

또한 string에서는 insert 기능 역시 지원하고 있기 때문에 vector, list 등등의 컨테이너에서 insert를 사용하는 것처럼 이용할 수 있습니다.

'Information Technology > C++' 카테고리의 다른 글

[C++] ostream으로 출력하기  (0) 2019.12.24
[C++] istream으로 입력받기  (0) 2019.12.23
[C++] 클래스와 const  (0) 2019.12.18
[C++] 포인터와 const  (0) 2019.12.17
[C++] 정적 바인딩과 동적 바인딩  (0) 2019.12.13