티스토리 뷰

gets() 함수는 '\n'(엔터)가 나올때까지 한 라인의 문자열을 전부 읽어들이는 함수입니다.

scanf() 함수를 써도 %s를 이용해서 문자열을 읽어들일 수 있지만 공백이 나올 경우 읽어들이는 것을 멈추게 됩니다.


예를 들어 "He is a student." 라는 문자열을 입력한다고 할때 gets(str1)을 쓰면 정상적으로 모두 입력이 되지면 scanf("%s", str1) 으로 입력을 받는다면 "He"까지만 입력을 받습니다.


그렇지만 scanf()함수도 정규식을 잘 활용한다면 gets()함수처럼 한줄을 전부 읽어들이도록 만들 수 있습니다. 다음과 같이 하면 됩니다.


scanf("%[^\n]", str1);


위와 같이 하면 \n(엔터)가 나올때까지의 모든 문자를 읽으라는 의미가 되므로 gets()함수와 같은 기능을 하게 됩니다. gets(str1); 대신에 위의 문장을 넣어주어도 똑같이 동작하는걸 확인할 수 있습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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
글 보관함