문타쿠, 공부하다.
[C언어 코딩 도장] Unit 43. 문자열 만들기 본문
43.1 서식을 지정하여 배열 형태로 문자열 만들기
지금까지 사용한 printf 함수는 문자열을 화면에만 출력할 수 있었다.
그럼 화면에 출력하지 않고 문자열을 만들어서 따로 저장할 수 없을까?
->이때 사용하는 것이 sprintf 함수
sprintf 함수?
-> 서식(format)을 지정하여 문자열을 만들 수 있으며, stdio.h 헤더 파일에 선언되어 있다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char s1[20];
// "Hello, %s"로 서식을 지정하여 s1에 저장
sprintf(s1, "Hello, %s", "world!");
printf("%s\n", s1);
return 0;
}
sprintf 함수로 문자열을 생성할 때 사용하는 배열이나 메모리 공간(포인터)을 버퍼(buffer)라고 부른다.
서식 지정자를 사용할 수 있는 만큼 C언어의 다양한 값(자료형)도 문자열로 만들 수 있다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char s1[30];
sprintf(s1, "%c, %d, %f, %e", 'a', 10, 3.2f, 1.123456e-21f);
printf("%s\n", s1);
return 0;
}
43.2 서식을 지정하여 문자열 포인터에 문자열 만들기
문자열 포인터에 문자열을 만들기 위해서는 malloc 함수로 메모리를 할당한 뒤 sprintf 함수로 문자열을 만들면 된다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* s1 = malloc(sizeof(char) * 20);
sprintf(s1, "Hello, %s", "world!");
printf("%s\n", s1);
free(s1);
return 0;
}
마찬가지로 문자열 뿐만 아니라 서식 지정자를 사용하여 C언어의 다영한 값(자료형)도 문자열로 만들 수 있다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* s1 = malloc(sizeof(char) * 30);
sprintf(s1, "%c, %d, %f, %e", 'a', 10, 3.2f, 1.123456e-21f);
printf("%s\n", s1);
free(s1);
return 0;
}
'C언어 > C언어 코딩 도장' 카테고리의 다른 글
[C언어 코딩 도장] Unit 44. 문자열 검색하기 (0) | 2023.10.02 |
---|---|
[C언어 코딩 도장] Unit 43. 연습문제 및 심사문제 (0) | 2023.10.02 |
[C언어 코딩 도장] Unit 42. 연습문제 및 심사문제 (0) | 2023.09.25 |
[C언어 코딩 도장] Unit 42. 문자열을 복사하고 붙이기 (0) | 2023.09.25 |
[C언어 코딩 도장] Unit 41. 연습문제 및 심사문제 (0) | 2023.09.25 |