문자열을 입력받을 때 gets, puts 함수는 문자열 입출력 함수입니다. gets는 문자열을 입력받고 puts는 문자열을 출력할 때 쓰이는 함수입니다. 특히 gets나 puts를 사용하면 Enter단위로 문자열을 입력받기때문에 한줄씩 입력받을 수 있습니다.
gets 함수 사용법
gets(str);
str : 입력받을 문자형 배열
gets는 문자열을 입력을 받는 함수입니다. 문자열만 입력받을 수 있고, 개행을 기준으로 입력받습니다. 작동방식은 사용자로부터 문자열을 입력받아 함수의 인자로 명시한 주소의 메모리에 저장한 뒤 입출력 버퍼가 비어있는지 확인하고 비어있다면 문자 혹은 문자열을 입력받아 입출력 버퍼에 저장합니다.
※ 최근에는 gets대신에 gets_s를 사용하라고 권장하는 추세입니다. gets는 버퍼 오버플로우의 가능성이 크기에 그것을 방지하기 위해 조금 더 안전한 gets_s라는 함수를 새로 만들어서 제공하였다고 합니다. '
puts 함수 사용법
puts(str);
str : 출력할 문자형 배열
puts는 문자열을 출력하는 함수입니다. 다만, 문자열만 출력할 수 있고, 출력 후 개행을 합니다. 작동방식은 전달된 메모리 주소의 문자열을 \0이 나올때까지 출력하는 방식입니다.
gets, puts 간단 예제
#include <stdio.h>
int main() {
char ch[30];
gets(ch);
puts(ch);
return 0;
}
gets와 puts를 사용하려면 stdio.h 헤더파일을 include 한뒤 문자열 배열을 만들고 사용하시면 됩니다.
'Language > C , C++ , C#' 카테고리의 다른 글
[C언어/C++] 문자열 복사하기 strcpy, strncpy 함수 사용법 & 예제 + 구현 (0) | 2020.08.28 |
---|---|
[C언어/C++] 문자열 길이 구하기 strlen 함수 사용법 & 예제 + 구현 (0) | 2020.08.27 |
[C언어] scanf 사용법 char형 문자 입력 시 공백 무시하기 (0) | 2020.08.25 |
[C언어] scanf 사용법 int형 정수 한글자씩 입력받기 (0) | 2020.08.25 |