C++ 문자열 치환 replace, regex_replace 사용 방법 예제

C++에서 문자열을 치환하는 방법을 알아보도록 하겠습니다.

문자열을 치환해주는 함수로 replace와 regex_replace가 있습니다.

대상 문자열에서 지정한 위치부터 원하는 문자로 바꿔줍니다.

또는 대상 문자열에서 특정 문자열만 검색해 원하는 문자로 변환할 수 있습니다.

사용방법을 살펴보겠습니다.

 

replace

문자열을 치환해주는 함수인 replace 사용 방법입니다.

문자열.replace(시작 위치, 길이, 치환 문자열)

  • 시작 위치부터 지정한 길이만큼 문자열을 치환 문자로 변환.
  • 시작 위치 인덱스는 0부터 시작

 

지정한 위치부터 문자열을 치환하는 샘플을 보겠습니다.

#include <iostream>
using namespace std;

int main() {

	string str1 = "aaa-bb";
	cout << str1.replace(0,2, "zz") << endl; //zza-bb

	return 0;
}

 

결과

zza-bb

 

변수 str1에 대입한 문자열을 replace 함수를 사용해 치환을 했습니다.

시작 위치는 첫 번째 글자인 인덱스 0부터 두 글자를 치환했습니다.

치환 문자는 zz를 지정했습니다.

결과를 보면 첫 번째와 두 번째 문자열이 zz로 치환된 것을 볼 수 있습니다.

regex_replace

대상 문자열에서 문자열을 검색해 치환하기 위해서는 regex_replace를 사용합니다.

regex_replace 사용 방법을 알아보겠습니다.

regex_replace.(대상 문자열, regex(정규식), 치환 문자열)

  • 대상 문자열에서 정규식으로 지정한 문자를 치환 문자열로 변환.
  • #include <regex> 필요.

 

정규식에 지정한 문자열과 일치하는 모든 문자열을 치환하게 됩니다.

샘플을 보도록 하겠습니다.

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

int main() {

	string str1 = regex_replace("aaa-bba-ccd-daf", regex("a"), "z");
	cout << str1 << endl; 

	return 0;
}

결과

zzz-bbz-ccd-dzf

 

정규식에 문자열 a를 지정했습니다.

대상 문자열인 변수 str1에 대입한 문자열중 a라는 문자를 찾아 치환 문자인 z로 모두 변환을 했습니다.

특정한 모든 문자를 변경하고 싶은 경우에는 regex_replace를 사용해 간단하게 치환할 수 있습니다.

댓글