Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[C언어 코딩 도장] Unit 40. 입력 값을 문자열에 저장하기 본문

C언어/C언어 코딩 도장

[C언어 코딩 도장] Unit 40. 입력 값을 문자열에 저장하기

개발새발 문타쿠 2023. 9. 24. 18:09

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