본문 바로가기
C , C++

C_ 문자열과 string (주의할점 모음!)

by Edes Kim 2020. 6. 7.

문자열 vs String

C++ 에서는 string이라는 새로운 자료형을 사용하기 때문에 배열형태의 문자열을 잘 쓰지는 않을거지만,

C 에서는 문자형 배열 ( char str[] )을 선언해서 문자를 구현하는 방법 밖에 없다.

 

 

질문) 문자열에서는 띄어쓰기가 안된다는게 어떤걸 말하는 거였더라....

 


항상 주의해야할 포인트!

1) 문자열의 끝에는 \0 라는 null값이 들어있다

"Hello, world!" 뒤에는 문자열의 끝임을 의미하는 '/0' 이라는 null값이 마지막 인덱스에 들어있기 때문에 배열의 크기(길이)는 13이 아닌 14이다.


2) 입력받을때 주의

문자열을 입력받거나 출력 할때는 ' &s '가 아닌 ' s '여야 한다.


3)

#include <string.h>

: 문자열을 사용하려면 헤더파일을 추가해야함.

   ( C++에서 사용하는 <iostream>은 이 <string.h>를 이미 안에 포함하고 있어서 따로 추가하지 않아도 string을 사용할수 있다.)

 

strlen( ) 

: ( )안의 문자열의 길이를 반환한다.

  위와 같이 string의 길이를 100으로 미리 정해져 있더라도 그 만들어진 문자열의 길이가 아닌,

  문자열 중에서 정보가 들어있는 만큼의 길이를 제대로 알려준다.

 

strcpy( str2 ,str1 )

 : str1에 있는 내용을 str2에게 복사를 시켜준다.

 

strcat ( str , "Hello" )

 : str안의 정보 다음에 "Hello"가 이어서 덧붙여서 저장된다.

여기서는 그럼 str 값이 "Hello World"가 된다.

strcmp (str1, str2)

: 두 문자를 비교하는 함수. 사전적인 순서에서 누가 먼저인지도 확인할수 있다.

-1 : str1이 str2 보다 사전적으로 앞에 있을 때

 0 : 둘이 같은 문자일때

  1 : str이 str2 보다 사전적으로 뒤에 있을때