본문 바로가기

C/C++/[C] 함수

[C 함수] 정수, 실수, 문자 등을 문자열로 !! ( sprintf )

반응형

C 함수.

sprintf 함수를 이용해 정수, 실수, 문자, 문자열등의 데이터를

하나로 연결시켜보자 !!


해당 예제는 sprintf 함수의 사용 방법을 알아보는 예제 입니다.


소스 및 설명.

#include

#include // os 마다 특성이 조금씩 달라서 추가하지 않아도 되는 분도 있을거에요~ ( string.h ) int main() { char str[50]; // 다양한 데이터 형식을 하나로 연결할때 사용할 문자열 str 선언. int n = 100; // 정수형 데이터 char c = '1'; // 문자 데이터 char ch[5] = "50"; // 문자열 데이터 double d = 1.5; // 실수형 데이터 memset(str, 0x00, sizeof(str)); // str 이라는 변수안의 값을 모두 0x00( 널 ) 으로 초기화 sprintf(str, "%d %c %s %.2lf", n, c, ch, d); /* sprintf 함수를 통한 정수, 문자, 문자열, 실수 형태의 데이터를 공백 문자 하나씩을 띄어주며 하나로 연결해줍니다. */ printf("[%s]\n", str); // 출력해볼까요 ~ return 0; }

자~ 소스를 이렇게 작성하고~ 컴파일 한뒤 실행을 해보면 ?


출력 결과 : [100 1 50 1.50]


출력이 위와같이 나오게 됩니다.


sprintf 의 기능을 좀더 쉽게 생각하자면 scanf 함수나 fprintf 함수와 비슷하다고 보시면 됩니다.


우리가 scanf 함수를 통해 사용자로부터 입력 받은 값을 데이터에 저장을 하기도 하고~

fprintf 함수를 통해 내가 출력하고자 하는 내용을 파일안에 출력을 해주듯이

우리는 sprintf 함수를 통해 각 변수안의 있는 내용을 원하는 저장공간( char 배열 )에 그대로~ 저장( 출력 )을 할수가 있습니다.


그리고 해당 데이터들은 모두 char 배열 안에 문자의 형태로 저장이 됩니다.


예제에서 나온것처럼 int 형이든..double 이든..무조건 말이죠.


용 방법은 매우 간단 합니다.


인자값은 크게 3가지 입니다.


첫번째 !! 저장할 문자열 변수의 주소지. ( 데이터를 저장하고싶은 char 배열의 주소지 )

두번째 !! 저장하고자 하는 데이터의 형식.

세번째 !! 자신이 입력한 형식에 들어갈 변수명.



이렇게 3가지의 인자값을 주면 친절하게 제가 기입해둔 첫번째 인자값에 모두 들어가 있는걸

확인하실수 있을겁니다.


sprintf 는 주로 파싱을 할때 쓰이기도 하고, 다양한 내용을 한번에 출력해서 보여주고자 할때

편의를 위해 사용하기도 하며~

비슷한 함수로는 snprintf 함수가 있어요 ~


sprintf 함수와 snprintf 함수는 사용방법이 거의 흡사하지만

굉장히 중요한 차이점이 있는데

이건 전에 포스팅을 한적이 있어서 링크 걸어드릴게요 ~

사용하실일이 있다면 한번쯤 읽어보세요 ~

( 링크 :  http://ycswarm.tistory.com/23    sprintf 와 snprntf 의 차이점 )


반응형