문타쿠, 공부하다.
[C언어 코딩 도장] Unit 40. 입력 값을 문자열에 저장하기 본문
40.1 입력 값을 배열 형태의 문자열에 저장하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char s1[10];
printf("문자열을 입력하세요>> ");
scanf("%s", s1);
printf("\n");
printf("출력>> %s\n", s1);
return 0;
}
위와 같이 scanf에서 서식 지정자 %s로 문자열을 저장할 때, 입력된 문자열에 공백이 있다면 배열에는 공백 직전까지만 저장된다.
공백까지 포함하여 입력을 받고싶다면?
-> 서식 지정자를 "%[^\n]s"와 같이 지정하면 공백까지 포함하여 문자열을 입력받을 수 있다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char s1[10];
printf("문자열을 입력하세요>> ");
scanf("%[^\n]s", s1);
printf("\n");
printf("출력>> %s\n", s1);
return 0;
}
40.2 입력 값을 문자열 포인터에 저장하기
입력 값을 문자열 포인터에 저장하려면 문자열이 들어갈 공간을 따로 마련해야 하는데,
malloc 함수로 메모리를 할당한 뒤 문자열을 저장한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* s1 = malloc(sizeof(char) * 10);
printf("문자열을 입력하세요>> ");
scanf("%s", s1);
printf("\n");
printf("출력>> %s\n", s1);
free(s1);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char* s1 = malloc(sizeof(char) * 10);
printf("문자열을 입력하세요>> ");
scanf("%[^\n]s", s1);
printf("\n");
printf("출력>> %s\n", s1);
free(s1);
return 0;
}
40.3 문자열을 여러 개 입력 받기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
char s1[10];
char s2[10];
printf("문자열을 두 개 입력하세요>> ");
scanf("%s %s", s1, s2);
printf("\n");
printf("s1>> %s\n", s1);
printf("s2>> %s\n", s2);
return 0;
}
'C언어 > C언어 코딩 도장' 카테고리의 다른 글
[C언어 코딩 도장] Unit 41. 문자열의 길이를 구하고 비교하기 (0) | 2023.09.25 |
---|---|
[C언어 코딩 도장] Unit 40. 연습문제 및 심사문제 (0) | 2023.09.24 |
[C언어 코딩 도장] Unit 39. 연습문제 및 심사문제 (0) | 2023.09.24 |
[C언어 코딩 도장] Unit 39. 문자열 사용하기 (0) | 2023.09.24 |
[C언어 코딩 도장] Unit 38. 연습문제 및 심사문제 (0) | 2023.09.23 |