누에나방애벌레
C 언어의 cstring과 C++의 string 본문
cstring (C 언어 스타일 문자열 처리)
cstring은 C 언어에서 사용되는 문자열 처리 라이브러리입니다. string.h 헤더 파일을 포함하여 사용할 수 있습니다.
#include <cstring>
주요 함수
- strcpy: 문자열 복사
- 사용 예: strcpy(destination, "hi");
- 설명: destination 배열에 "hi" 문자열을 복사하고, 끝에 \0을 삽입합니다.
- strstr: 문자열 검색
- 사용 예: char *ptr = strstr(haystack, "needle");
- 설명: haystack 문자열에서 "needle" 문자열을 찾아서 시작 위치를 리턴합니다. 찾지 못하면 NULL을 리턴합니다.
- strcmp: 문자열 비교
- 사용 예: int result = strcmp(str1, str2);
- 설명: str1과 str2를 비교하여 같으면 0을 리턴하고, 다르면 음수나 양수를 리턴합니다.
- strcat: 문자열 연결
- 사용 예: strcat(destination, " world");
- 설명: destination 문자열 뒤에 " world" 문자열을 추가합니다.
기타 함수
- memset: 배열 초기화
- 사용 예: memset(arr, 0, sizeof(arr));
- 설명: 배열을 특정 값으로 초기화할 때 사용합니다. 보통 0이나 -1로 초기화합니다.
- memcpy: 배열 복사
- 사용 예: memcpy(arr1, arr2, sizeof(arr1));
- 설명: arr2의 내용을 arr1에 복사합니다.
string (C++ 스타일 문자열 처리)
string은 C++에서 제공하는 문자열 처리 클래스입니다. 객체 지향적으로 설계되어 있으며, cstring과 달리 더 직관적인 인터페이스를 제공합니다.
#include <string>
주요 메서드
- length()와 size(): 문자열 길이
- 사용 예: text1.length();
- 설명: 문자열의 길이를 반환합니다. length()와 size()는 동일한 기능을 합니다.
- 값 변경
- 사용 예: text1 = "hi";
- 설명: 문자열의 내용을 "hi"로 변경합니다.
- 값 비교
- 사용 예: text1 == text2;
- 설명: 두 문자열이 같은지 비교하여, 같으면 true를 반환합니다.
- 값 찾기
- 사용 예: size_t pos = text1.find("world");
- 설명: text1 문자열에서 "world"를 찾아서 시작 위치를 반환합니다. 찾지 못하면 -1을 반환합니다.
- 문자열 자르기
- 사용 예: string substr = text1.substr(startIdx, length);
- 설명: text1 문자열에서 startIdx부터 length 길이만큼 잘라서 반환합니다.
- 문자열 삭제
- 사용 예: text1.erase(startIdx, length);
- 설명: text1 문자열에서 startIdx부터 length 길이만큼 삭제합니다.
- 문자열 삽입
- 사용 예: text1.insert(startIdx, "hello");
- 설명: text1 문자열의 startIdx 위치에 "hello"를 삽입합니다.
- 형 변환
- 문자열 -> 정수: int int_num = stoi(str_num);
- 정수 -> 문자열: string str_num = to_string(int_num);
- 문자열 더하기
- 사용 예: string ret = name1 + name2;
- 설명: name1과 name2를 합쳐서 새로운 문자열을 생성합니다.
이렇게 cstring과 string은 C와 C++에서 각각 사용되는 문자열 처리 방식입니다. cstring은 절차지향적인 함수 기반의 접근 방식을 사용하며, string은 객체 지향적인 클래스 기반의 접근 방식을 사용합니다. 각각의 장단점을 이해하고 상황에 맞게 사용하면 효과적인 문자열 처리를 할 수 있습니다.
'공부 > c++' 카테고리의 다른 글
C++ 비트 연산하기 (0) | 2024.08.14 |
---|---|
C++에서 변수+1 vs 변수++ (0) | 2024.07.26 |
C++에서 다양한 정렬 기능 활용하기 (0) | 2024.07.26 |
C++ Iterator (0) | 2024.07.25 |
C++ 배열과 벡터 (0) | 2024.07.25 |