개인노트

[C언어]scanf_s 함수를 이용한 배열의 문자열 입력 본문

C/문법

[C언어]scanf_s 함수를 이용한 배열의 문자열 입력

BillnairK 2017. 6. 27. 22:48

[ scanf_s 함수를 이용한 배열의 문자열 입력 ]


scanf_s 함수에 배열과 문자열을 사용할 때는 몇가지 다른점이 있다.


1. 변수를 입력할 때와 달리 배열의 문자를 입력할 때에는 배열 이름 앞에 &기호를 붙이지 않는다.

ex) scanf_s("%d", &num); → scanf_s("%s", str);


2. 문자열을 입력할 때에는 입력받을 인수의 크기를 지정해 주어야 한다.

ex) scanf_s("%s", str); [X]scanf_s("%s", str, sizeof(str)); [O]


* scanf_s() 함수의 's' 는 security(보안)을 의미하며, 버퍼오버런, 버퍼오버플로우 등 해킹으로부터 보호하기 위해, 보안 기능이 추가된 함수이며,

scanf_s("%s", buf, sizeof(buf)) 와 같이 입력받을 인수의 크기를 지정해주어야 한다.

(인수의 크기를 지정하지 않으면 오류가 난다.)


 문자열.c 


'C > 문법' 카테고리의 다른 글

[C언어] 포인터와 배열의 관계  (0) 2017.06.29
[C언어] 포인터란?  (0) 2017.06.28
[C언어] 배열의 문자열과 널(NULL)  (0) 2017.06.26
[C언어] 배열 선언, 배열 초기화  (0) 2017.06.23
[C언어] 재귀함수  (0) 2017.05.23
Comments