반응형

string(R, c)는 문자 c를 R번 반복하여 만든 문자열을 생성하는 C++의 표준 라이브러리 함수입니다. 이 함수는 <string> 헤더에 정의되어 있습니다.

간단히 설명하면, string 클래스의 생성자 중 하나인데, 첫 번째 매개변수에는 반복 횟수를, 두 번째 매개변수에는 반복할 문자를 전달합니다.

예를 들어, string(3, 'A')는 문자 'A'를 3번 반복한 문자열 "AAA"를 생성합니다. 코드에서는 이를 이용하여 각 문자를 R번 반복하는 부분을 간결하게 표현하고 있습니다.

#include <iostream>
#include <string>

using namespace std;

int main() {
    // 테스트 케이스의 개수 입력
    int T;
    cin >> T;

    // 각 테스트 케이스에 대한 반복
    for (int i = 0; i < T; ++i) {
        // 반복 횟수 R과 문자열 S 입력
        int R;
        string S;
        cin >> R >> S;

        // 각 문자를 R번 반복하여 새 문자열 P 생성
        string result = "";
        for (char c : S) {
            result += string(R, c);
        }

        // 결과 출력
        cout << result << endl;
    }

    return 0;
}

이 코드는 백준 2675번 문제와 관련이 있습니다.

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

 

그 외에도 string 관련 함수에 대해 알아보겠습니다.

 

1. `append` 함수:

`std::string`의 `append` 함수는 문자열을 뒤에 추가하는 데 사용됩니다. 다음은 `append` 함수의 사용 예시입니다:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello";
    str.append(" World");
    
    std::cout << str << std::endl; // 출력: Hello World
    
    return 0;
}



2. `insert` 함수:

`std::string`의 `insert` 함수는 특정 위치에 문자열을 삽입하는 데 사용됩니다. 다음은 `insert` 함수의 사용 예시입니다:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello";
    str.insert(5, " World");
    
    std::cout << str << std::endl; // 출력: Hello World
    
    return 0;
}


3. `end` 함수:

`std::string`의 `end` 함수는 문자열의 끝을 나타내는 반복자(iterator)를 반환합니다. 이를 사용하여 문자열의 끝에 새로운 문자열을 추가할 수 있습니다. 다음은 `end` 함수의 사용 예시입니다:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello";
    str.insert(str.end(), ' ');
    str.append("World");
    
    std::cout << str << std::endl; // 출력: Hello World
    
    return 0;
}


이 예제에서 `insert` 함수와 `append` 함수를 사용하여 문자열의 끝에 공백을 삽입하고 "World"를 추가했습니다. `str.end()`는 문자열의 끝을 나타내는 반복자를 반환하며, 이를 통해 문자열의 끝에 원하는 연산을 수행할 수 있습니다.

반응형

+ Recent posts