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

C++에서 두 문자열을 연결하는 프로그램 완벽 가이드

문자열(string)은 널 문자(null character, '\0')로 끝나는 1차원 문자 배열입니다. 두 문자열의 연결(concatenation)이란 두 문자열을 하나로 합쳐 새로운 문자열을 만드는 것을 의미합니다.

문자열 1: Mangoes are
문자열 2: tasty
연결 결과: Mangoes are tasty

예제 코드

다음은 C++에서 두 문자열을 연결하는 프로그램입니다.

#include <iostream>
using namespace std;
int main() {
   char str1[100] = "Hi...";
   char str2[100] = "How are you";
   int i,j;
   cout<<"String 1: "<<str1<<endl;
   cout<<"String 2: "<<str2<<endl;
   for(i = 0; str1[i] != '\0'; ++i);
   j=0;
   while(str2[j] != '\0') {
      str1[i] = str2[j];
      i++;
      j++;
   }
   str1[i] = '\0';
   cout<<"String after concatenation: "<<str1;
   return 0;
}

실행 결과

String 1: Hi...
String 2: How are you
String after concatenation: Hi...How are you

코드 동작 원리

위 프로그램에는 str1str2라는 두 개의 문자열이 있습니다. 먼저 for 루프를 사용하여 str1의 끝까지 이동합니다. for 루프가 종료되면 변수 i에는 str1 내 널 문자('\0')가 위치한 인덱스가 저장됩니다. 이를 보여주는 코드는 다음과 같습니다.

for(i = 0; str1[i] != '\0'; ++i);

그다음 while 루프를 사용하여 str2의 값을 str1으로 복사합니다. 변수 j는 0부터 시작하여 str2의 각 문자를 i가 가리키는 위치에 순서대로 저장합니다. 이 루프는 str2[j]의 값이 널 문자가 아닐 때까지 반복됩니다.

j=0;
while(str2[j] != '\0') {
   str1[i] = str2[j];
   i++;
   j++;
}

두 문자열이 str1에 연결된 후에는 마지막에 널 문자를 추가하여 문자열의 끝을 표시합니다. 그런 다음 연결된 문자열을 화면에 출력합니다.

str1[i] = '\0';
cout<<"String after concatenation: "<<str1;

참고 사항

실무에서는 위와 같이 직접 구현하는 대신 C 표준 라이브러리의 strcat() 함수나 C++의 std::string 클래스를 사용하면 더 안전하고 간편하게 문자열을 연결할 수 있습니다. 특히 std::string은 '+' 연산자만으로 문자열을 합칠 수 있어 코드 가독성이 크게 향상됩니다.