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;
}