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

C++ 프로그램으로 문자열을 N개의 동일한 부분으로 나누는 방법

개요

이 튜토리얼에서는 주어진 문자열을 N개의 동일한 부분으로 나누는 C++ 프로그램을 작성해 보겠습니다. 만약 문자열을 N등분할 수 없다면 균등 분할이 불가능하다는 메시지를 출력하도록 처리합니다.

문제 해결 접근 방식

문제를 해결하기 위한 단계는 다음과 같습니다.

  • 문자열과 분할 개수 N을 초기화합니다.

  • size 메서드를 사용해 문자열의 길이를 구합니다.

  • 문자열을 N개의 부분으로 나눌 수 있는지 확인합니다.

  • 균등하게 나눌 수 없다면 안내 메시지를 출력합니다.

  • 나눌 수 있다면 문자열을 순회하며 각 부분을 출력합니다.

예제 코드

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

#include <bits/stdc++.h>
using namespace std;

void divideTheString(string str, int n) {
    int str_length = str.size();
    if (str_length % n != 0) {
        cout << "Can't divide string into equal parts" << endl;
        return;
    }
    int part_size = str_length / n;
    for (int i = 0; i < str_length; i++) {
        if (i != 0 && i % part_size == 0) {
            cout << endl;
        }
        cout << str[i];
    }
    cout << endl;
}

int main() {
    string str = "abcdefghij";
    divideTheString(str, 5);
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

ab
cd
ef
gh
ij

코드 설명

핵심 로직은 매우 간단합니다. 먼저 문자열 길이가 N으로 나누어떨어지는지 검사하고, 나누어떨어지지 않으면 균등 분할이 불가능하다는 메시지를 출력한 뒤 함수를 종료합니다. 나누어떨어지는 경우에는 전체 길이를 N으로 나눈 값인 part_size를 계산하고, 반복문을 돌면서 part_size 간격마다 줄바꿈을 출력해 각 부분을 별도의 줄에 표시합니다. 위 예제에서는 길이가 10인 문자열 "abcdefghij"를 5개 부분으로 나누어 두 글자씩 출력했습니다.

마무리

이 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.