본문 바로가기
프로그래밍언어/C 언어

[C 언어] getchar 함수를 사용한 문자열 입력

by khsnote22 2022. 12. 9.

getchar 함수도 버퍼를 사용하는 문자 입력 함수입니다. getchar 함수를 반복 사용하면 한 줄의 문자열을 char 배열에 입력할 수 있습니다. 

 

// getchar 함수를 사용한 문자열 입력

#include <stdio.h>

void my_gets(char *str, int size);

int main(void)
{
	char str[7];
    
    my_gets(str, sizeof(str));
    printf("입력한 문자열 : %s\n", str);
    
    return 0;
}

void my_gets(char *str, int size)
{
	int ch;
    int i = 0;
    ch = getchar();
    while((ch != '\n') && (i < size -1))
    {
    	str[i] = ch;
        i++;
        ch = getchar();
    }
    str[i] = '\0';
}

이 예제는 getchar 함수를 사용하여 키보드로 잉ㅂ력한 한 줄의 문자열을 char 배열로 저장합니다.

단, 배열의 크기를 넘는 문자열을 입력한 경우도 배열의 크기만큼만 입력하도록 작성하여 할당되지 않은 메모리를 침범하지 않도록 작성합니다. 또한 크기가 다른 배열에도 사용할 수 있도록 함수로 만듭니다.

 

함수 안에서는 최초로 문자를 입력하는데 이때 키보드로 한 줄의 데이터를 모두 입력하여 버퍼에 저장해둡니다. 이후 getchar 함수를 반복 사용하여 버퍼로부터 문자를 하나씩 가져와 배열에 차례로 저장합니다.