본문 바로가기
프로그래밍_개발/C

C언어 개인노트#007

by Raffin 2020. 5. 11.
반응형
SMALL

문자열형 변수

문자열형 변수는 문자형 변수와 유사하지만 저장과 계산의 효율성을 위해 몇가지 규칙이 포함되어 있어요.

#include <stdio.h>
main ()
{
    char a [5] = {'K','O','R','E','A'};
    printf("%c \n",a[1]);
    printf("%s \n",a);
    char b[6] = {'K','O','R','E','A','\0'};
    printf ( "%s\n", b);
    char c[6] = "KOREA";
    printf ( "%s\n", c);
}

위 프로그램을 작성해보도록 합시다.

 

a[1]이 출력하는 문자는 O 였습니다.

따라서 K는 a[0]이라는 것을 알 수 있어요.

printf("%s \n",a); 에서 우리가 지정한 a[5]는 K에서 시작하지만 끝을 알 수 없기 때문에 다른 문자들이 함께 출력됩니다.

(코드블록에서 뒤쪽 문자는 안나오게 막힌듯, 본래 다른 문자까지 출력함)

b[6] 문자열형 변수에 문자열형 변수 값의 끝을 의미하는 종료(NULL)문자 \0이 포함되어 8행에서는 정확한 결과가 출력됩니다.

9행은 입력의 불편함을 막기위해 출력할 문자를 모두 입력하는 방법입니다. 마지막에 null이 자동으로 입력되는 거죠.

 

문자열형 변수는 여러 문자를 저장하기 위해서 여러 개의 메모리 공간을 연속적으로 할당받아 한 문자씩 저장하게 됩니다. 문자열형 변수를 저장할 때는 변수명 뒤에 필요한 공간의 크기를 적아야하는데 저장하고자 하는 문자열 상수의 길이보다 하나 큰 공간을 할당해야합니다.

 

예를들어 KOREA를 입력할 경우엔 a[5]가 아니라 a[6]라고 해야합니다.

 

 

 

논리변수

C 언어에서는 '참' 과 '거짓'의 논리 상수값을 저장하는 변수를 사용할 수 있습니다. 일반적으로 논리값은 '크다', '작다'와 같은 비교 연산의 결과죠.

#include <stdio.h>
#include <stdbool.h>
main()
{
    bool a = false;
    bool b = 25;
    printf("%d %d \n", a, 0);
    printf("%d %d \n", b , true);
}

헤더파일이 2개가 사용되고, 자료형이 int나 char대신에 bool이 사용되었습니다.

bool 자료형을 사용하기 위해서 헤더 파일 #include <stdbool.h>이 필요합니다.

bool은 논리 자료형이라고도 하며 참과 거짓을 나타내는 데 사용합니다.

bool a = false; 에서 논리 변수 a에 거짓(false, 0)이 저장됩니다.

bool b = 25; 논리 변수에 저장할 때 1(true)로 바꾸어 저장됩니다. 

논리값을 의미하는 논리 상수인 참, 거짓은 1(참) 또는 0(거짓)으로 바뀌어 저장되며, 0 이외의 모든 수는 참(true)으로 인식됩니다.

 

#include <stdbool.h> - bool, true, false 가 정의된 헤더 파일.

반응형

'프로그래밍_개발 > C' 카테고리의 다른 글

C언어 개인노트#006  (0) 2020.05.11
C언어 개인노트#005  (0) 2020.05.07
C언어 개인노트#004  (0) 2020.05.07
C언어 개인노트#003  (0) 2020.05.07
C언어 개인노트#002  (0) 2020.05.07

댓글