출저 : 프로그래밍 입문 사이트 ~bituse~ | http://bituse.info/cp/8


이번에는 C++에서 새로 추가된 String 형식에 대해서 설명하겠습니다. String 형식이라고 했지만, 엄밀하게는 클래스입니다. String 형식을 사용하려면 "string”을 포함해야 합니다. 항상 어미에 붙였던 ".h"는 필요로 하지 않습니다. 뭐냐하면, C에서 귀찮았던 문자열 처리를 쉽게 해주는 것입니다. 예를 들어 C에서 초기 값 설정 이외의 때 배열에 문자열을 설정하려면


char test [10];

test = "가나다라마바사";


같이 직접 할당할 수 없습니다. (선언 시 초기 값으로 설정할 때 가능)

String 형식은 이것을 


string str;

str = "가나다라마바사";


와 같이 쉽게 설정할 수 있습니다. 또한 지금까지 처럼,


str[3] = 'd';


같은 key를 사용하여 각 요소에 개별적으로 액세스하여 할당할 수 있습니다. 또한 클래스이므로, 기본적으로 어떤 함수가 구현되어있습니다. 주로 쓰이는 것을 몇 가지 소개하겠습니다.

아래 코드를 봐주세요.


소스코드 보러가기[각주:1]




일부 기능이 있기 때문에 위에서 부터 보고 갑시다. 첫째, size 함수에서 이것은 문자 수를 돌려줍니다. str 변수에 들어있는 문자는 7문자이므로 7이 되돌아오고 있습니다. 같은 의미의 length 함수도 상관 없습니다.


그런 다음, empty 함수입니다만, 이것은 대상의 변수가 비어있는지 검사해줍니다. 빈 경우 0이 아닌 값을 반환합니다. 그게 아니라면 0을 반환하게 됩니다.


다음은 함수는 아니지만, string 함수는 그저 + 연산자로 덧셈하는 걸로도 문자의 연결이 가능합니다. 나중에 더한 것이 이전 변수 뒤에 문자가 들러붙습니다. 실행 결과를 보시면 알 수 있습니다.


그리고 substr 함수입니다. 이것은 첫 번째 인수에 숫자를 지정하면 전부터 센 문자 번호에서 뒤에 문자를 모두 출력해줍니다. 첫 번째 문자는 0 문자부터 시작됩니다. 이번에는 5로 지정하고 있으므로 F에서 표시되어 있습니다. 이 함수는 두 번째 인수에 추가 숫자를 지정하여 해당 위치에서 무슨 문자까지 꺼내기, 라는 것도 지정할 수 있습니다.


마지막으로, c_str 함수입니다. 이것은 string 형식에서 char 형식으로 변환 할 때 사용하는 함수입니다. string 형식은 유용하지만 char 형식과는 다르므로, char 형식을 사용하는 함수는 string 형식은 사용할 수 없습니다. 그래서 변환이 필요합니다. 이 c_str 함수를 실행하면 char 형식에 변환된 문자열의 포인터를 돌려줍니다. 위의 코드에서는 문자열을 계속 사용할 수 있도록 하기 위해, 미리 확보해놓은 char 형식 배열 test에 strcpy 함수를 사용하여 문자열을 복사합니다. (포인터 변수로 받아도 좋지만, 그 소스 영역은 string 형식이 손실된 때 소멸할 가능성이 있기 때문에 일부러 배열에 복사합니다.)

이 함수는 첫번째 인수 대상 포인터, 두 번째 인수에 문자 또는 문자열이 있는 포인터를 지정합니다. 그럼 char 형식으로 변환할 수 있기 때문에 평소 printf 함수로 표시하고 있습니다.


이상 string 형식의 설명입니다. char 형으로 변환만 조심하면 매우 편리해서 꼭 사용해보세요. 이외에도 많은 함수가 있기 때문에, 인터넷에서 검색하여 여러가지 조사해봅시다. 다음부터는 STL에 대해 설명해 가려고 합니다.

  1. 해당 코드는 티스토리 에디터 기능과 syntax highlighter 기능의 충돌로 정확히 표기되지 않아 링크로 대체합니다. [본문으로]

'공부 > C/C++' 카테고리의 다른 글

(C++) 컨테이너 【vector】  (0) 2014.03.27
(C++) STL에 대해서  (0) 2014.03.27
(C++) C++의 문자열 출력에 대해서  (0) 2014.03.26
(C++) 가상 함수  (0) 2014.03.26
(C++) 클래스의 상속  (0) 2014.03.26