C/C언어 코딩도장

UNIT 43 문자열 만들기

yeong1225 2022. 2. 26. 00:53
sprintf(배열, 서식, 값);
sprintf(배열, 서식, 값1, 값2, ...);

43.1 서식을 지정하여 배열 형태로 문자열 만들기

화면에 출력하지 않고 문자열을 만들어서 따로 저장하려면 sprintf 함수를 사용하면됨. 그러면 서식(format)을 지정하여 문자열을 만들 수 있음. (stdio.h 헤더 파일에 선언되어 있음)

 

sprintf(배열, 서식, 값);

sprintf(배열, 서식, 값1, 값2, ...);

#define _CRT_SECURE_NO_WARNINGS //sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h> //sprintf 함수가 선언된 헤더 파일

int main()
{
	char s1[20]; //크기가 20인 char형 배열을 선언

	sprintf(s1, "Hello, %s", "World!"); //"Hello, %s"로 서식을 지정하여 s1에 저장

	printf("%s\n", s1); // Hello, wolrd!

	return 0;
}

보통 s1과 같이 문자열을 저장할 빈 배열을 버퍼(Buffer)라고 부름

서식 지정자를 사용할 수 있는 만큼 C언어의 다양한 값(자료형)도 문자열로 만들 수 있음

#define _CRT_SECURE_NO_WARNINGS //sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h> //sprintf 함수가 선언된 헤더 파일

int main()
{
	char s1[30]; //크기가 30인 char형 배열을 선언

	sprintf(s1, "%c %d %f %e", 'a', 10, 3.2f, 1.123456e-21f); //문자, 정수, 실수를 문자열로 만듦

	printf("%s\n", s1); // a 10 3.200000 1.123456e-21

	return 0;
}

여기서는 sprintf 함수에 값을 바로 넣었지만 문자, 정수, 실수형 변수를 넣어도 됨

43.2 서식을 지정하여 문자열 포인터에 문자열 만들기

#define _CRT_SECURE_NO_WARNINGS //sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h> //sprintf 함수가 선언된 헤더 파일
#include <stdlib.h>

int main()
{
	char* s1 = malloc(sizeof(char) * 20);

	sprintf(s1, "Hello, %s", "world!");

	printf("%s\n", s1); //Hello, World!

	free(s1);

	return 0;
}

#define _CRT_SECURE_NO_WARNINGS //sprintf 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h> //sprintf 함수가 선언된 헤더 파일
#include <stdlib.h>

int main()
{
	char* s1 = malloc(sizeof(char) * 30);

	sprintf(s1, "%c %d %f %e", 'a', 10, 3.2f, 1.123456e-21f); //문자, 정수, 실수를 문자열로 만듦

	printf("%s\n", s1); // a 10 3.200000 1.123456e-21

	free(s1);

	return 0;
}