C++에서 문자열의 일부를 바꾸는 방법

  1. replace()메서드를 사용하여 C++에서 문자열의 일부 바꾸기
  2. 사용자 지정 함수를 사용하여 C++에서 문자열의 일부 바꾸기
  3. regex_replace()메서드를 사용하여 C++에서 문자열의 일부 바꾸기

이 문서에서는 C++에서 문자열의 일부를 바꾸는 방법에 대한 여러 방법을 보여줍니다.

replace()메서드를 사용하여 C++에서 문자열의 일부 바꾸기

replacestd::string 클래스 내장 메소드이며 문자열 객체의 특정 부분을 교체하는 정확한 기능을 제공합니다. 함수의 첫 번째 매개 변수는 주어진 문자열이 삽입되는 시작 문자를 나타냅니다. 다음 매개 변수는 새 문자열로 대체되어야하는 하위 문자열의 길이를 지정합니다. 마지막으로 새 문자열이 세 번째 인수로 전달됩니다. replace 메소드는 호출되는 문자열 객체를 수정합니다.

#include <iostream>
#include <string>

using std::cout; using std::cin;
using std::endl; using std::string;

int main(){
    string input = "Order $_";
    string order = "#1190921";

    cout << input << endl;

    input.replace(input.find("$_"), 2, order);

    cout << input << endl;

    return EXIT_SUCCESS;
}

산출:

Order $_
Order #1190921

사용자 지정 함수를 사용하여 C++에서 문자열의 일부 바꾸기

또는 내부 교체를 수행하는 대신 별도의 수정 된 문자열 객체를 반환하는 사용자 지정 함수를 생성 할 수 있습니다. 이 함수는문자열변수에 대한 3 개의 참조를받습니다. 첫 번째 문자열은 수정 용이고 두 번째 하위 문자열은 대체 용이며 세 번째 문자열은 삽입 용입니다. 여기서 함수는 이동 의미를 가지고 있기 때문에 값으로 구성된 문자열을 반환한다는 것을 알 수 있습니다.

#include <iostream>
#include <string>

using std::cout; using std::cin;
using std::endl; using std::string;

string Replace(string& str, const string& sub, const string& mod) {
    string tmp(str);
    tmp.replace(tmp.find(sub), mod.length(), mod);
    return tmp;
}

int main(){
    string input = "Order $_";
    string order = "#1190921";

    cout << input << endl;

    string output = Replace(input, "$_", order);

    cout << output << endl;

    return EXIT_SUCCESS;
}

산출:

Order $_
Order #1190921

regex_replace()메서드를 사용하여 C++에서 문자열의 일부 바꾸기

이 문제를 해결하는 데 사용할 수있는 또 다른 유용한 방법은regex_replace를 활용하는 것입니다. <regex>헤더에 정의 된 STL 정규 표현식 라이브러리의 일부입니다. 이 메서드는regex를 사용하여 주어진 문자열의 문자를 일치시키고 시퀀스를 전달 된 문자열로 바꿉니다. 다음 예에서regex_replace는 새 문자열 객체를 생성합니다.

#include <iostream>
#include <string>
#include <regex>

using std::cout; using std::cin;
using std::endl; using std::string;
using std::regex_replace; using std::regex;

int main(){
    string input = "Order $_";
    string order = "#1190921";

    cout << input << endl;

    string output = regex_replace(input, regex("\\$_"), order);

    cout << output << endl;

    return EXIT_SUCCESS;
}

산출:

Order $_
Order #1190921

관련 문장 - C++ String

  • C++에서 구분 기호를 사용하여 문자열을 구문 분석하는 방법
  • C++에서 두 문자열을 연결하는 방법