Hoon222y

17장. 문자열(Strings) (1) 본문

코딩/뇌자극C++

17장. 문자열(Strings) (1)

hoon222y 2016. 2. 11. 14:17

이번에는 문자열에 대해 공부해 보도록 하겠다.

문자열의 경우 C 스타일, C++스타일로 나뉘게 되는데, 먼저 C스타일 문자열에 대해 배워보도록 하자.

C 스타일 문자열의 경우 간단히 말하면 '문자를 배열' 에 보관한다고 볼 수 있다. 코드를 보면서 이해해 보자.

여기서 strcpy(dest , src) 의 의미는 src 내용을 dest에 복사한다는 뜻이다.

또한 strlen(src)는 src의 길이를 반환해주는 함수이다. strlen()함수는 NULL문자를 제외한 길이라는 점을 유의해야 한다.

이번에는 문자열을 비교하고, 결합하는 방법에 대해 배우도록 하겠다. 코드를 보도록 하자.

strcat(str1,str2)는 str1뒤에 str2를 합친 문자열을 str1 에 보관하도록 한다. 여기서 주의할 점은 str1의 크기가 str2 를   넣을만큼의 메모리가 충분히 확보되어야한다는 점이다. 

str2는 str1의 NULL자리부터 문자가 복사되어진다.

strcmp()의 경우는 인자로 넘겨진 두 문자열을 한글자씩 비교하는 함수이다.


이번에는 C++스타일 문자열에 대해 알아보자.

가시적으로 보이는 차이는 C스타일의 경우 <cstring>을 쓰고 C++의 경우 <string>을 쓰는것이 첫번째일 것이다.

C스타일에 비해 정말 간단하다. string t 라는 변수를 만들고 t 를 출력해주는것이 끝이다.

문자열 복사의 경우에도 decs = t 라는 코드로 간단히 복사됨을 볼 수 있다.

문자열의 길이의 경우 변수명.size()를 통해 문자열의 길이를 알 수 있다.

문자열의 결합은 str1 = str1+ str2; 이런식으로 결합이 가능하다.

문자열의 탐색의 경우는 다음 코드를 보자.

문자열 탐색의 경우 변수명.find("찾을 단어") 를 통해 찾을수 있다. 출력값은 adidas가 탐색된 첫 a의 위치값이 출력이 된다.(24)

그렇다면 부분적으로 문자열을 출력할 수는 없을까?

substr()함수는 첫번째 인자의 위치에서부터 두번째 인자의 갯수만큼 출력해주는 함수이다. 

지금까지 대략의 C,C++스타일 문자열에 대해 배워보았다. 

본문이 길어지는 관계로 두 스타일들을 혼합하여 사용하는 방법은 (2)에서 다시 설명하도록 하자.







'코딩 > 뇌자극C++' 카테고리의 다른 글

20장. 객체지향 프로그래밍  (0) 2016.02.11
18장. 헤더파일과 구현파일  (0) 2016.02.11
17장. 문자열(Strings) (2)  (0) 2016.02.11
16장. 동적 메모리 할당  (0) 2016.02.10
Comments