이 글에서는 하나의 문자열을 사용자가 입력한 횟수(n)만큼 반복해서 연결하는 방법을 알아보겠습니다. 문제 자체는 매우 간단하며, C++에서는 + 연산자(또는 += 연산자)를 사용해 손쉽게 문자열을 이어 붙일 수 있습니다.
예를 들어 문자열 "Hello"를 5번 연결하면 "HelloHelloHelloHelloHello"라는 결과가 만들어집니다. 아래 알고리즘과 예제 코드를 통해 구현 과정을 살펴보겠습니다.
알고리즘
concatStrNTimes(str, n)
begin
res := 빈 문자열
for i in range 1 to n, do
res := res와 str을 연결
done
return res
end
알고리즘의 핵심은 결과를 저장할 빈 문자열 res를 준비한 뒤, 반복문을 n회 돌면서 원본 문자열 str을 계속 뒤에 덧붙이는 것입니다.
예제 코드
#include<iostream>
using namespace std;
main() {
string myStr, res = "";
int n;
cout << "Enter String: ";
cin >> myStr;
cout << "Enter number of times it will be concatenated: ";
cin >> n;
for(int i = 0; i < n; i++) {
res += myStr;
}
cout << "Result: " << res;
}
코드 설명
- myStr: 사용자가 입력한 원본 문자열을 저장합니다.
- n: 문자열을 반복할 횟수를 저장합니다.
- res: 최종 결과 문자열로, 처음에는 빈 문자열("")로 초기화합니다.
- for 반복문이 n번 실행되면서
res += myStr;연산으로 myStr을 res 뒤에 계속 추가합니다.
실행 결과
Enter String: Hello
Enter number of times it will be concatenated: 5
Result: HelloHelloHelloHelloHello
위 출력에서 볼 수 있듯이, "Hello"가 정확히 5번 연결되어 하나의 문자열로 출력됩니다. 참고로 C++11 이상 환경이라면 반복문 없이도 다양한 방식(예: 임시 문자열 곱셈 기법, std::string 생성자 활용 등)으로 같은 결과를 얻을 수 있지만, 가장 직관적이고 이해하기 쉬운 방법은 위와 같은 단순 반복문 방식입니다.