본문 바로가기

PROGRAMMING LANGUAGE/C

13강 배열과 문자열

배열과 문자열에 대해 알아보자.

배열이란 변수 개수가 많을 때 같은 자료형으로 여러 개의 변수를 선언하고

사용할 수 있는 c언어의 문법이다. 

 

배열의 특징

고정된 크기를 가진다.

메모리에 연속적으로 배치되어 있다.

순서가 존재하며 순차적으로 할당된다.

 

 

 

배열을 선언하고 값을 할당하는 코드를 보자.

#include <stdio.h>

void main()
{
	short student[20];

	student[1] = 10;  
	printf("%d\n", student[1]);
}

 

다음 코드는 short데이터 타입의 student배열에 공간을 20개 할당하고 [1]인덱스에 10이라는 상수값을 

대입하였다.

short student[20]이라고 선언하게 되면 c언어에서는 배열 공간 20개를 할당하고 0부터 19까지의 숫자로

공간에 값을 대입하거나 꺼내서 출력할 수 있다.

 

#include <stdio.h>

void main()
{
	int student[20], i;
	for (i = 0; i < 20; i++)
	{
		student[i] = i;
		printf("%d %d\n", student[i], i);
	}
}

반복문을 이용하여 0부터 19까지의 공간에 0부터 19의 값을 대입하여 출력하는 코드이다.

배열의 인덱스는 0부터 시작한다는 것을 잊지말자.

 

문자열에 대해서 알아보자.

C언어에서는 큰따음표("")를 사용해 표현되는 문자열을 문자열 상수(string constant)라고 한다.

문자열(string)은 메모리에 저장된 일련의 연속된 문자(character)의 집합이다.

 

#include <stdio.h>

void main()
{
	char str01[] = "This is a string.";    // 크기를 지정하지 않은 문자열 변수 선언
	char str02[7] = "string";              // 크기를 지정한 문자열 변수 선언

	printf("이것은 문자열 상수입니다.\n"); // 문자열 상수
	printf("문자열 str01에 저장되어 있는 문자열은 \"%s\"입니다.\n", str01);
	printf("문자열 str02에 저장되어 있는 문자열은 \"%s\"입니다.\n", str02);
}

 

널(NULL)문자

문자형 배열로 선언된 문자열 변수는 문자열의 끝을 프로그램에 따로 알려주어야 한다.

그래야만 프로그램이 문자열의 끝을 알고 쓰레기 값을 구분할 수 있다.

C언어에서는 문자열에 속한 데이터가 끝나면, 문자열의 끝을 의미하는 문자를 하나 더

삽입해준다. 이 문자를 널문자라고 하며 '\n'으로 표시하고 아스키코드 값은 0이다.

 

#include <stdio.h>

void main()
{
	int str_len = 0;

	char str[] = "string";



	while (str[str_len] != '\0') // 널 문자가 나올 때까지 길이를 증가함

	{

		str_len++;

	}

	printf("이 문자열의 길이는 %d입니다.\n", str_len);
}

이 코드는 while문으로 배열에 들어있는 char 데이터 타입의 요소가 문자열의 끝을 의미하는

'\0'과 같을 떄 까지 비교하여 문자열의 길이를 출력하는 코드이다.

string 데이터 타입은 사실 char 데이터 타입의 집합이다. string으로 선언하고 값을 넣으면 

맨 뒤에는 \0문자가 들어가게 된다.

'PROGRAMMING LANGUAGE > C' 카테고리의 다른 글

15강 포인터와 배열 그리고 상수화  (0) 2021.09.15
14강 포인터  (0) 2021.09.15
12강 재귀함수  (0) 2021.09.15
11강 변수의 존재기간과 접근범위  (0) 2021.09.15
10강 전처리기  (0) 2021.09.14