C Language Basic

C Language [핵심정리] - 21

cCcode 2021. 6. 1. 00:39

1. 문자열 만들기

지금까지 사용한 printf 함수는 오직 문자열을 화면에 출력할 수만 있었습니다. 만약 printf 함수를 사용해서 문자열을 만든 후 따로 저장하고 싶다면 sprintf 함수를 사용해야합니다. 그러면 서식(format)지정하여 문자열을 만들 수 있습니다. (<stdio.h>파일에 선언되어 있습니다.)

sprintf 함수 사용
sprintf 함수 사용
결과

일단, 첫 번째 줄만 보시고도 sprintf 함수 역시 보안 상의 문제sprintf_s 함수가 존재한다는 걸 아시겠죠? 제가 코드에 #define _CRT_SECURE_NO_WARNINGS 처럼 정의한다면 그 코드에서 사용하는 함수는 보안상 문제가 있고 그 함수원형을 보여드리기 위해 사용한다고 보시면 됩니다.

보통 str과 같이 문자열을 저장한 빈 배열을 뭐라고 한다고 했죠? 저번 시간에 언급했듯이 버퍼(buffer)라고 부릅니다.

서식지정자를 사용할 수 있는 덕분에 C언어에 존재하는 다양한 자료형 또한 사용가능합니다.

다양한 자료형 사용
결과

 

이번에는 배열이 아닌 문자열 포인터 형태문자열을 만들어보겠습니다. 크기선언해서 바로 사용할 수 있던 배열보단 어려울 수 있으나 여기까지 따라오신 여러분들이라면 간단히 이해할 수 있을겁니다.

sprintf 함수 사용(포인터)
sprintf 함수 사용(포인터)
결과

char 20개 크기만큼 동적으로 메모리할당을 했습니다만, 이때 배열과 마찬가지로 문자열을 생성한 메모리 공간도 하나의 버퍼(buffer)입니다. 이 경우에도 여러가지 자료형을 사용할 수 있습니다. 같은 함수를 사용하니 결과 역시 동일할 수 밖에 없죠.

 

+ sprintf_s 함수 사용하기

sprintf_s 함수 사용하기
sprintf 함수 사용하기
결과