더북(TheBook)

c라는 변수에 저장된 A라는 문자가 잘 출력됩니다.

이번에는 문자열을 확인해 봅시다. 문자열은 보통 값에 여러 문자가 한 번에 들어가기 때문에 일반 변수가 아닌 배열(array)을 사용합니다. 다음 코드를 봅시다.

char str[256];

이 코드는 문자를 저장하는 c와 같은 문자형 변수 256개를 연속으로 만든다는 의미입니다. 배열에 문자열을 저장하는 방법은 6.4.1 배열에 문자열 저장하기에서 배우므로 지금은 대괄호에 숫자를 넣어 숫자 크기만큼의 공간을 가진 변수를 만든다는 정도로만 이해하면 됩니다.

그럼 문자열을 입력받아 출력해 봅시다. 문자열을 입력받거나 출력할 때는 서식 시정자로 %s를 사용합니다. 그리고 배열일 때는 & 표시 없이 변수명(str)만 작성하면 됩니다(7.3.1 포인터로 배열에 접근하기에서 자세히 설명합니다).

그런데 scanf_s()로 문자열을 입력받으려면 크기를 명시해야 합니다. 이것이 scanf()scanf_s()를 사용할 때 다른 점입니다. str은 총 256개 공간을 만들기 때문에 256개보다 더 큰 문자가 들어오면 문제가 발생할 수 있습니다. 그래서 다음과 같이 sizeof 연산자를 써서 str 변수의 크기만큼, 즉 256개 이내의 문자만 받겠다고 알려 줘야 합니다.

형식

sizeof(변수명/배열명/자료형)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.