리안이와 함께하는 세상

[C] ' ' , " " 본문

STUDY !/잡다한 지식

[C] ' ' , " "

리안아범 2009. 10. 18. 00:19
인터넷을 하다가 어떤 질문을 보고 생각나서 끄적대 본다.

C언어에 있는 함수 getc와 gets를 아는가?
몰라? 그럼 getchar와 gets는?
그럼 putchar와 puts는?
간단히 말하자면 get은 입력, put은 출력함수이고 char는 문자, s는 문장을 뜻한다.
char와 s가 분리 되어있음에 주목하자.

문자는 작은 따옴표(' ')로 감싸고, 문장은 큰 따옴표(" ")로 감싸야 한다.

즉,  'abc'라고 입력하면 안된다는 것이다.
물론 "a"라고 입력하는 것은 가능하다. 이 경우 a를 문자가 아닌 문장으로 인식한다는 점에 유의하자
getchar('a')와 getchar("a")는 명백히 다르다.
잘 모르겠으면 직접 코딩해 보자
해보고 오류 찾아서 느껴보는게 학습하는데 가장 좋은 길이니까.
하는김에 getchar('abc')라고도 쳐보도록.
출력이 된다면...
1. getchar('a') -> a출력 , b c는버퍼(임시 저장공간)에.
2. getchar('b') -> b출력 , c는 버퍼에.
3. getchar('c') -> c출력
이런 과정일 것이다.
본인도 해본적이 있는것 같은데... 아마 5자 까지는 가능했던 것 같다.




그냥 읽어두세요. 싫음 말구 ㅋㅋㅋㅋㅋㅋㅋㅋ

캐릭터(문자)하나가 문장으로 취급될 수는 있다.
문자 ⊂ 문장 의 관계가 성립하기 때문이다.

반대의 경우는?
문자를 입력받는 함수인 getchar에 문장을 입력하면 어떻게 될까?

잘 모르겠으면, 문제를 바꿔보도록 하자.
공 10개를 담을 수 있는 상자에 공 100개를 집어 넣으면 어떻게 될까?
흘러넘치겠지?

그럼 C언어에서는 어떨까?
문자를 담는 통(함수)에 문장을 집어넣으면? 당연히 흘러넘치겠지

결론 : 문자는 문장이 될 수 있지만 문장은 문자가 될 수 없다.