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 함수를 반복 사용하여 버퍼로부터 문자를 하나씩 가져와 배열에 차례로 저장합니다.
'프로그래밍언어 > C 언어' 카테고리의 다른 글
[C 언어] 문자열 상수 구현 방법 (0) | 2022.12.09 |
---|---|
[C 언어] 입력 버퍼 지우기 (0) | 2022.12.09 |
[C 언어] scanf 함수 반환값 활용 (0) | 2022.12.09 |
[C 언어] scanf 함수가 문자를 입력하는 과정 (0) | 2022.12.09 |
[C 언어] getchar 함수와 putchar 함수 (0) | 2022.12.09 |