본문 바로가기
알고리즘/개념

문자열 총정리 <C++>: char, string, #include <cstring>, #include <string>, getline, 문자열

by 코드 이야기 2020. 7. 12.
728x90

알고리즘 문제를 풀 때 필요한 문자열 정리

 

 

1. 선언 방법

 

- 문자열 선언 방법에는 크게 두가지가 있다.

 

1. char타입(문자형)의 배열을 만드는 것

 

2. string 타입의 변수를 선언하는 것 

  -> string은 문자열 타입이고, 변수로 선언하더라도 배열과 크게 다르지 않다.

     (vector 개념을 사용하기 때문이다.)

 

  -> 또한 string은 int, float, char와 같은 기본 타입이 아니기 때문에 헤더파일을 포함시켜주어야 한다.

     (실제로 코드를 짜다보면 코드에서 char의 색깔은 바뀌고, string은 까만 색인 것으로 알 수 있다.)

 

 

 

 

  -> #include<cstring>을 이용해 포함하거나 #include <string>을 이용하여 포함시킨다.

 

char ex.

 

 

 

string ex1.

 

 

 

string ex2.

 

 

 

 

 

 

 

 

2. 문자열 길이 구하기

 

- char와 string에 따라 문자열의 길이를 구하는 방법이 다르다. 

- 헤더에 포함시킨게 cstring인지, string인지에 따라도 조금 다르다.

 

1. char의 문자열 길이 구하기

  -> strlen(c); 로 길이를 구할 수 있다.

     (헤더에 cstring을 포함했다면 이 방법이 가능하다. string을 포함했다면 불가능하다.)

 

2. string의 문자열 길이 구하기

  -> s.size()를 이용하는 방법과 s.length()를 이용하는 방법 두 가지가 있다. 사실상 둘이 거의 똑같다.

     (헤더에 cstring을 포함시켜도, string을 포함시켜도 가능하다.)

 

 

string length ex.

 

 

 

string 헤더 선언시 char length -> error ex.

 

빨간줄이 보인다. 에러라는 뜻이다.

 

 

cstring 헤더 선언시 char, string ex.

 

 

 

 

 

 

 

 

3. 띄어쓰기 업력 받기 (getline)

 

- 기본적으로 getline 함수를 이용한다. 

 

- char배열인지, string인지에 따라 사용 방법이 다르다.

 

- string타입 변수 사용시 = getline(cin,s); //getline(cin, 문자열 변수 이름)
- char 배열 사용시 =
cin.getline(c,101); //cin.getline(문자열 변수 이름, 문자열 배열의 크기)

 

 

ex1.

 

 

 

ex2.

 

 

 

 

 

 

 

 

4. 기본값과 종료문자

 

- int에서는 전역변수를 사용할 경우 0이 기본값이었다. 지역변수는 쓰레기값

 

- char는 전역변수를 사용할 경우 '\0'이 기본값이다. 지역변수는 쓰레기값

 

- string은 vector이기때문에 단어의 길이만큼만 배열의 방이 생긴다.

 

* 문자열 hello world를 문자열 변수에 담는다면

  배열에 담기는 것은 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '\0'이다. 

 

그렇기 때문에

char arr[11];

을 하고 hello world를 담는다면 

문제가 생긴다.

문자열의 종료를 알리는 \0이라는 문자 하나도 꼭 필요하다.

 

728x90

'알고리즘 > 개념' 카테고리의 다른 글

알고리즘의 시간복잡도  (0) 2020.09.16
[C++] pair  (0) 2020.09.04
C++ 알고리즘 실행시간 줄이기  (0) 2020.08.22
문자열 정렬  (0) 2020.08.11
큐(queue), 스택(stack) 명령어 정리와 연습문제  (0) 2020.05.17

댓글