개발

C++ 문자열

백인성(GGM) 2024. 3. 12. 11:00

들어가기 앞서

아래의 코드가 어떻게 실행이 될지 생각해 보자

#include <iostream>

using namespace std;

int main()
{
    char s[] = { 'h','i'};
    cout <<s;
}

 

아마도 hi儆儆儆試?괆?? 이것과 비슷하게 이상하게 나올 것 이다.

 

왜 이렇게 나오느냐?

 

바로 끝을 정해주지 않았기 때문이다.

문자의 끝은 '\0' 을 마지막에 추가해주면 된다.

 char s[] = { 'h','i','\0'};

이런식으로 말이죠

 

하지만 계속 할때마다 '\0'을 붙이는건 아주 비효율적인 행동이다.

그럴때는 이제 

char str [] = {"이렇게!? 이렇게?"};

이렇게 큰 따음표로 감싸면 자동으로 '\n'이 대입이 된다.

 

그럼 string은 char와 뭐가 다르냐? 라고 한다면

 

string 은 char [] 배열의 크기가 계속 변하는 가변형 문자형이며

char는 한번 정해진 배열의 크기는 바꿀수 없는 고정문자형이 가장 큰 차이라 생각한다.

아래의 코드를 봐보자.

char str[] = {'a','b','c','d'};
str = {'a','b','c','d','e','f'};

위의 코드는 이미 크기가 처음에 4로 정해진 str배열의 크기를 바꿀 수 없어 오류가 나는 것을 알 수 있다.

 

다음으로 문자열의 클래스 멤버함수를 알아보자

이것 이외에도 많은 멤버 함수들이 있지만.

가장 자주 사용하는 것만 나열해 보았다.

반응형

'개발' 카테고리의 다른 글

백준 25501번 재귀의 귀재  (0) 2024.03.22
C++ 열거형  (0) 2024.03.19
백준 15813번 너의 이름은 몇 점이니?  (0) 2024.03.10
C++ 이름 입출력으로 C++ 맛보기  (0) 2024.03.08
C++ 첫 걸음  (2) 2024.03.05