gets()함수에 대해 또 궁금한 점이 있습니다.
슬아라
2023.04.01
fflush(stdin);
printf(서버로 보낼 메시지를 입력하세요 : );
gets(toServer);
if(toServer ==exit) == 0) {
return 1;
}
이렇게 코딩을 하면 exit 쳤을때 종료가 안돼더라구요.
gets함수가 문자열을 입력받는 함수라고 했고. exit도 문자열인데. 왜 안돼는 걸까요?
그래서 검색끝에
if(strcmp(toServer, exit) == 0)
요런식으로 해야지 되더라구요. strcmp가 문자열 비교함수라서 되는거 같은데.
왜 위의 소스 대로 하면 안돼는 걸까요? C언어 오랜만에 만치니깐 잘모르겠네요.
gets함수가 있었나? 싶기도 하구요.
-
맑다
아~~맞다..감사합니다. JAVA배울때도 저거 때문에 헷깔렸었는데.
-
봄시내
== 값을 비교하는 겁니다.. 때문에 양쪽 주소값을 비교하니 다르다고 나오는거고..
strcmp() 말그대로 문자열 비교를 == 로 할 수 없기 때문에 등장한 문자열 비교 전용 함수죠..
씨언어 여서가 아니라 다른 언어도 거의 다 저렇게 비교할텐데요..