로딩
요청 처리 중입니다...

c언어 scanf 문자열 입출력

 c언어 scanf 문자열 입출력

#define _CRT_SECURE_NO_WARNINGS #include int main() { char s1[10]; printf("문자열을 입력하세요: "); scanf("%s", s1); printf("%s\n", s1); return 0; } c언어 문자열 입출력을 할 때 scanf를 이용하면 위에 처럼 하면 된다. 그런데 scanf는 보안상 결함이 있기 때문에 오류가 나는데 이를 방지하기 위해 #define을 추가해준 것이다.

이렇게 하면 문자열 입출력이 잘 된다, 한가지 유의할 점은 char은 배열이기 때문에 scanf에서 s1을 쓸 때 &연산자를 붙이지 않는다는 점이다. 만약 그냥 int형 숫자였다면 &을 붙여야 했을 것이다.

한 가지 더, scanf는 보안상 결함이 있기 때문에 scanf_s의 사용을 권장한다. 그런데 scanf_s는 문자열 입력 받을 때 위에랑 똑같이 하면 안 된다.

찾아보니 문자열의 길이가 인자로 더 필요했다. 그러니까 만약 위의 ...

# c # c언어 # define을 # scanf # scanf_s # 문자열입출력