Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 문자열 두 절반의 문자를 역순으로 교차 결합해 새 문자열 만들기

이 튜토리얼에서는 문자열의 앞 절반과 뒷 절반에 있는 문자들을 역순으로 교대로 결합하여 새로운 문자열을 만드는 C++ 프로그램을 작성해 보겠습니다.

예를 들어 "tutorialspoints"라는 문자열이 주어지면, 앞 절반과 뒷 절반을 각각 끝에서부터 한 글자씩 번갈아 가져와 새로운 문자열을 구성하게 됩니다.

문제 해결 단계

  • 문자열을 초기화합니다.

  • 문자열의 길이를 구합니다.

  • 첫 번째 절반과 두 번째 절반의 인덱스를 저장합니다.

  • 문자열의 두 절반 끝에서부터 반복하면서 각 문자를 새 문자열에 하나씩 추가합니다.

  • 완성된 새 문자열을 출력합니다.

예제 코드

전체 코드를 살펴보겠습니다.

#include <bits/stdc++.h>
using namespace std;
void getANewString(string str) {
    int str_length = str.length();
    int first_half_index = str_length / 2, second_half_index = str_length;
    string new_string = "";
    while (first_half_index > 0 && second_half_index > str_length / 2) {
        new_string += str[first_half_index - 1];
        first_half_index--;
        new_string += str[second_half_index - 1];
        second_half_index--;
    }
    if (second_half_index > str_length / 2) {
        new_string += str[second_half_index - 1];
        second_half_index--;
    }
    cout << new_string << endl;
}
int main() {
    string str = "tutorialspoints";
    getANewString(str);
    return 0;
}

코드 설명

first_half_index는 앞 절반의 마지막 문자 위치에서, second_half_index는 문자열의 맨 끝에서 시작합니다. while 루프가 실행되는 동안 앞 절반과 뒷 절반에서 각각 한 글자씩 가져와 새 문자열에 추가한 뒤 인덱스를 감소시킵니다. 문자열 길이가 홀수인 경우를 대비해, 루프가 끝난 후 남아 있는 문자를 처리하는 if 문도 함께 포함되어 있습니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

asitrnoitouptsl

마무리

이렇게 두 개의 인덱스를 활용하면 문자열을 역순으로 교차 결합하는 작업을 간단하게 구현할 수 있습니다. 튜토리얼에 대해 궁금한 점이나 질문이 있다면 댓글로 남겨 주세요.