C++ 문자열 함수: strcpy(), strcat(), strlen(), strcmp()
⚡ 스마트 요약
C++ strcpy, strcat, strlen, strcmp와 같은 문자열 함수는 프로그램이 텍스트를 복사, 병합, 측정 및 비교할 수 있도록 해줍니다. 이 자료에서는 문자열이란 무엇인지, C 스타일 문자열과 std::string 문자열을 선언하는 방법, 문자열 값에 접근하는 방법, 그리고 핵심 문자열 함수를 예제와 함께 적용하는 방법을 설명합니다.

문자열이란 무엇입니까?
문자열은 일련의 문자입니다. 에이 C++ `string`은 `std::string` 클래스의 객체입니다. 문자는 바이트 시퀀스로 저장되며, 단일 문자 바이트에 대한 접근만 허용됩니다.
C++ 문자열은 메모리를 동적으로 할당합니다. 필요에 따라 런타임 중에 문자열에 더 많은 메모리를 할당할 수 있습니다. 메모리 사전 할당이 없으므로 메모리 낭비가 없습니다. 문자열에 대해서는 비교, 연결, 변환 등 다양한 연산을 수행할 수 있습니다.
문자열 선언
C++ 두 가지 유형의 문자열 선언을 지원합니다.
- C 스타일 문자열
- 문자열 클래스 유형
C 스타일 문자열
이러한 유형의 문자열 선언은 다음에 도입되었습니다. C 프로그래밍 언어. C++ 계속해서 지원합니다. 이는 단순히 널 문자(\0)로 끝나는 1차원 문자 배열입니다. 널 종료 문자열은 문자열을 구성하는 문자 뒤에 널 문자가 오는 형태입니다.
아래 주어진 문자열 선언을 고려하십시오.
char name[5] = {'J', 'o', 'h', 'n', '\0'};
위 선언은 "John"이라는 단어를 구성하는 문자열을 생성합니다. 이 단어는 4개의 문자로 이루어져 있지만, 문자열의 크기는 5입니다. 추가 공간은 널 문자를 저장하기 위한 것입니다.
배열 초기화 규칙을 사용하여 위의 명령문을 다음과 같이 작성할 수 있습니다.
char name[] = "John";
참고로, 문자열 상수의 끝에 널 문자를 배치할 필요는 없습니다. C++ 컴파일러는 배열을 초기화할 때 문자열 끝에 '\0'을 자동으로 배치합니다.
표준::문자열
표준 C++ 이 라이브러리는 다양한 문자열 연산을 지원하는 문자열 클래스를 제공합니다. 이 클래스는 std::string으로 작성됩니다.
이 클래스를 사용하려면 먼저 아래와 같이 `#include` 전처리기를 사용하여 작업 공간에 포함시켜야 합니다.
#include <string>
다음으로 string 키워드를 사용하여 문자열을 선언할 수 있습니다. 예를 들어:
string name = "John";
위의 명령문은 John 값을 보유하기 위해 name이라는 문자열을 생성합니다.
문자열 값에 액세스
In C++, 문자열 이름을 사용하여 문자열 값에 액세스할 수 있습니다. 예를 들어:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
출력:
다음은 코드의 스크린샷입니다.
Code 설명 :
- 코드에 iostream 헤더 파일을 포함합니다. 이를 통해 콘솔에서 읽고 쓸 수 있습니다.
- 클래스와 함수를 호출하지 않고 사용할 수 있도록 std 네임스페이스를 포함합니다.
- 프로그램의 로직을 구현할 main() 함수를 호출합니다. 중괄호({)는 main() 함수의 본문 시작을 나타냅니다.
- 문자열을 선언하고 name이라는 이름을 지정합니다. 문자열은 John 값을 저장합니다. 추가 공간에는 널 문자가 저장됩니다.
- 콘솔에 일부 텍스트를 인쇄합니다.
- 콘솔에 name이라는 문자열 값을 인쇄합니다.
- 프로그램이 정상적으로 실행되면 main() 함수는 값을 반환해야 합니다.
- main() 함수 본문의 끝입니다.
다음은 C++ 표준 문자열 클래스:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
출력:
다음은 코드의 스크린샷입니다.
Code 설명 :
- 코드에 iostream 헤더 파일을 포함합니다. 이를 통해 콘솔에서 읽고 쓸 수 있습니다.
- 코드에 표준 문자열 클래스를 포함합니다.
- 클래스와 함수를 호출하지 않고 사용할 수 있도록 std 네임스페이스를 포함합니다.
- 프로그램의 로직을 구현할 main() 함수를 호출합니다. 중괄호({)는 main() 함수의 본문 시작을 나타냅니다.
- 문자열 변수를 선언하고 name이라는 이름을 지정합니다. 이 문자열에는 값이 저장됩니다. Guru99.
- 콘솔의 일부 텍스트와 함께 문자열 이름 값을 인쇄합니다.
- 프로그램이 정상적으로 실행되면 main() 함수는 값을 반환해야 합니다.
- main() 함수 본문의 끝입니다.
문자열 함수 C++
문자열을 조작하고 싶을 때가 많습니다. C++ 이를 위해 사용할 수 있는 다양한 기능을 제공합니다. 이러한 기능은 다음과 같이 정의됩니다. 헤더 파일이 있으므로 해당 함수를 사용하려면 코드에 포함시켜야 합니다. 몇 가지 예를 살펴보겠습니다.
strcpy ()
문자열 복사 기능입니다. 한 문자열을 다른 문자열로 복사합니다.
구문 :
strcpy(string1, string2);
함수의 두 매개변수인 string1과 string2는 문자열입니다. 이 함수는 string2의 내용을 string1에 복사합니다.
strcat()
문자열 연결 기능입니다. 문자열을 연결합니다.
구문 :
strcat(string1, string2);
함수의 두 매개변수인 string1과 string2는 연결할 문자열입니다. 위 함수는 문자열 string2를 문자열 string1의 끝에 연결합니다.
strlen ()
문자열 길이 함수입니다. 인수로 전달된 문자열의 길이를 반환합니다.
구문 :
strlen(string1);
string1 매개변수는 길이를 결정할 문자열의 이름입니다. 위 함수는 문자열 string1의 길이를 반환합니다.
strcmp()
문자열 비교 기능입니다. 문자열 비교에 사용됩니다.
구문 :
strcmp(string1, string2);
위 함수는 문자열 string1과 string2가 유사하면 0을 반환하고, string1이 string2보다 작으면 0보다 작은 값을 반환하며, string1이 string2보다 크면 0보다 큰 값을 반환합니다.
예:
다음 예제에서는 위의 문자열 함수를 사용하는 방법을 보여줍니다.
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
출력:
다음은 코드의 스크린샷입니다.
Code 설명 :
- 코드에 iostream 헤더 파일을 포함합니다. 이를 통해 콘솔에서 읽고 쓸 수 있습니다.
- 표준을 포함하여 코드의 헤더 부분입니다.
- 클래스와 함수를 호출하지 않고 사용할 수 있도록 std 네임스페이스를 포함합니다.
- 프로그램의 로직을 구현할 main() 함수를 호출합니다. 중괄호({)는 main() 함수의 본문 시작을 나타냅니다.
- 10자리의 문자열을 선언하고 name1이라는 이름을 지정합니다. 이 문자열에는 값이 저장됩니다. Guru99.
- 10자로 구성된 문자열을 선언하고 이름을 name2로 지정합니다. 문자열은 John 값을 저장합니다.
- 10자로 구성된 문자열을 선언하고 이름을 name3으로 지정합니다.
- 선언 정수변수 렌이라는 이름을 가진 사람.
- 문자열 name1을 문자열 name3에 복사합니다.
- 문자열 'name3'의 값과 일부 텍스트를 콘솔에 출력합니다. 출력 결과는 다음과 같아야 합니다. Guru99.
- 문자열 name2를 문자열 name1의 끝에 연결합니다. 이제 name1의 값은 다음과 같습니다. Guru99존.
- 문자열 'name1'의 값과 일부 텍스트를 콘솔에 출력합니다. 출력 결과는 다음과 같아야 합니다. Guru99존.
- name1이라는 이름의 문자열 길이를 구하고, 그 길이 값을 len 변수에 할당합니다.
- len 변수의 값을 다른 텍스트와 함께 콘솔에 출력합니다.
- 프로그램이 정상적으로 실행되면 main() 함수는 값을 반환해야 합니다.
- main() 함수 본문의 끝입니다.




