반응형

문자와 문자열

 

 

C 언어에서는 문자를 저장할 때 주로 문자(char) 자료형을 사용하며

 

문자를 변수에 저장하기 위해서는 단일 따옴표(single quote)를 사용한다.

 

아래의 예제를 봐보자.

 

-

 

test27.c
0.00MB

 

 

-

 

위의 예제는 문자형(char) 변수 a 문자 'A'를 저장한 뒤에 값을 출력한다.

 

그다음1을 더하여 문자형으로 그리고 정수형으로 값을 출력한다.

 

그리고 문자형 변수에다 정수형 값을 저장하고 문자형으로 출력할 수 있음을 함께 보여준다.

 

 

원래 char 자료형 문자형 데이터를 처리하기 위한 자료형으로 일반적으로

 

아스키(ASCII) 형태의 문자를 계산하거나 처리하기 위한 자료형이다.

 

하지만

 

내부적으로는 정수형 데이터로 처리하기 때문에 1바이트 크기의 정수형 자료형으로도 함께 사용 가능하다.

 

그러므로 위의 예제에서처럼 'A' + 1 이라는 연산이 가능하고

 

저장된 정수형 값을 사용할 때 문자형으로 표기할 것인지 정수형으로 표기할 것인지 선택하여 사용할 수 있다.

 

 

위의 예제에서 확인할 수 있듯이 정수형 값 57 문자형 값 '9'와 같지만

 

정수형 값 9 문자형으로 '9'와 상관이 없고 전혀 다른 값을 갖는다는 사실에 주의해야 한다.

 

 

char 자료형 하나의 문자

 

 

1바이트를 저장하는 자료형이다.

 

한글을 사용할 때 각각의 글자를 표현하기 위해서 2바이트 이상을 사용하므로

 

하나의 char 자료형에서는 한글 한 글자를 저장할 수 없고 char형의 배열을 사용해야 한다.

 

또한

 

여러 개의 문자가 포함된 문자열의 경우도 마찬가지로 char형의 배열을 사용하여 데이터를 저장할 수 있다.

 

아래의 예제를 통해 char형 배열을 이용하여 문자열을 처리하는 방법에 대해 봐 보자.

 

-

 

test28.c
0.00MB

 

 

 

-

 

다음 구문은 char형 배열 str을 선언하면서 "hello" 문자열로 초기화한 뒤

 

각 배열 요소에 저장된 값을 출력하고 있다.

 

실행 결과에서 약간 특이한 점은 "hello"는 총 5글자로 구성되어 있지만

 

4번째 위치의 'o' 값 다음에 NULL 문자('\0')가 함께 저장되어 출력되고 있다는 점이다.

 

-

 

 

-

 

 

위의 구문에서 문자열 "hello"를 저장하기 위해서 아래 사진과 같이

 

총 5바이트 크기의 공간과 마지막 NULL 문자('\0')까지 6바이트 공간을 차지하고 있음을 알 수 있다.

 

-

 

 

-

 

C 언어에서는 문자열을 저장하는 자료형이 따로 없고 char형의 배열을 이용하여 문자를 저장하기 때문

 

NULL 문자를 통해서 문자열의 끝을 구분하기 위함이다.

 

 

-

 

추가로

 

C 언어에서 문자형 포인터를 초기화하거나 문자열 포인터를 전달할 때

 

직접 문자열을 지정하여 사용할 수 있다.

 

이때 만약 문자열의 길이가 길면 소스 코드를 읽기 쉽도록 다음과 같이 문자열을 끊어서 표기할 수 있는데

 

다음 내용은 모두 같은 문자열을 출력하는 구문들이다.

 

-

 

 

-

 

하지만

 

위와 같은 방법은 단순히 소스 코드를 읽기 쉽게 나누어 표현하는 것으로

 

다른 버퍼 또는 주소에 저장된 문자열을 연결하는 경우는 문자열 처리 관련 함수를 이용해야 한다.

반응형

'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글

14. printf() 함수  (0) 2021.02.01
13. 함수  (0) 2021.02.01
11. 배열  (0) 2021.02.01
10. break문과 continue문  (0) 2021.02.01
8. 반복문  (0) 2021.02.01

+ Recent posts