산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 문자열 함수 마스터: strcpy, strcat, strlen, strcmp 실전 예제

문자열이란?

문자열은 단순히 문자의 시퀀스입니다. 현대 C++에서는 보통 메모리 할당, 크기 조정, 다양한 유용한 멤버 함수를 자동으로 처리하는 std::string 클래스 객체를 사용합니다. 이로써 수동 버퍼 관리가 불필요해지고 버퍼 오버플로 위험이 줄어듭니다.

교육적 목적으로 C++은 여전히 전통적인 C 스타일 널 종료 문자 배열을 지원합니다. 두 접근법 모두 자리가 있습니다: 일상적 프로그래밍에는 std::string을, 레거시 API나 성능 중요한 저수준 코드에는 C 스타일 문자열을 사용하세요.

문자열 선언

C 스타일 문자열

예제:

 char name[5] = {'J', 'o', 'h', 'n', '\0'}; 

또는 더 간결하게:

 char name[] = "John"; // 컴파일러가 종료 '\0' 삽입 

std::string

std::string을 사용하려면 헤더를 포함하고 변수를 선언하세요:

 #include <string>
std::string name = "John"; 

문자열 값 접근

아래는 C 스타일 문자열과 std::string 값을 출력하는 간단한 콘솔 프로그램입니다.

 #include <iostream>
#include <string>
using namespace std;
int main() {
    char cName[5] = "John"; // C 스타일 문자열
    string cppName = "Guru99"; // std::string
    cout << "C-style string: " << cName << endl;
    cout << "std::string: " << cppName << endl;
    return 0;
} 

출력:

C++ 문자열 함수 마스터: strcpy, strcat, strlen, strcmp 실전 예제

핵심 C 문자열 함수

이 함수들은 cstring 헤더에 정의되어 있으며, C 스타일 문자열(널 종료 char 배열)에서 작동합니다.

strcpy()

소스 문자열을 대상 버퍼에 복사합니다. 대상은 소스를 담을 만큼 충분히 커야 합니다.

 strcpy(dest, src); // dest는 충분한 공간이 있어야 함 

strcat()

소스 문자열을 대상 문자열 끝에 추가합니다. 마찬가지로 대상 버퍼가 결과를 수용할 만큼 충분히 커야 합니다.

 strcat(dest, src); // dest는 충분한 공간이 있어야 함 

strlen()

종료 널 바이트를 제외한 문자열의 문자 수를 반환합니다.

 size_t len = strlen(str); 

strcmp()

두 문자열을 사전순으로 비교합니다. 같으면 0, 첫 번째 문자열이 작으면 음수, 크면 양수를 반환합니다.

 int cmp = strcmp(str1, str2); 

실전 예제

 #include <iostream>
#include <cstring>
using namespace std;
int main() {
    char name1[10] = "Guru99";
    char name2[10] = "John";
    char name3[20]; // 연결 결과를 담을 충분한 크기
    // 복사
    strcpy(name3, name1);
    cout << "strcpy(name3, name1): " << name3 << endl;
    // 연결
    strcat(name1, name2);
    cout << "strcat(name1, name2): " << name1 << endl;
    // 길이
    size_t len = strlen(name1);
    cout << "strlen(name1): " << len << endl;
    // 비교
    int cmp = strcmp(name1, name3);
    cout << "strcmp(name1, name3): " << cmp << endl;
    return 0;
} 

출력:

C++ 문자열 함수 마스터: strcpy, strcat, strlen, strcmp 실전 예제

핵심 정리

C 언어

  1. Java String 마스터하기: 생성, 메서드, 모범 사례
  2. Java Enum 문자열 표현 마스터: 기본값, 오버라이딩, 고급 패턴
  3. C++ 변수와 데이터 타입: int, double, char, string, bool 전문가 가이드
  4. C++ 배열 완전 정복: 선언, 초기화, 포인터 기법
  5. C++ do-while 루프: 문법, 실전 예제, 중첩 루프
  6. C++ 포인터 완전 정복: 개념, 예제, 실전 활용
  7. C++ char 타입 마스터: 선언, ASCII 코드, 문자열 변환 기법
  8. C++ 연산자 오버로딩 실전 가이드: 문법, 접근법, 코드 예제
  9. C++ 함수 완전 정복: 실전 코드 예제로 이해하기
  10. C 문자열 완전 정복: 선언, 입출력, 라이브러리 함수