프로그래밍

 3198, 1/160 회원가입  로그인  
   reality
   if 문에 문자열을....

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3071 [복사]


if 문에 문자열을 넣으면 안돼나요?

예를 들어

#include <stdio.h>
#include <stdlib.h>

int main(){
char test;
printf(">> ");
scanf("%s", test);

if("test == test"){
printf("...");
system("PAUSE");}
}

이렇게 입력 하고 컴파일 하면 실행은 되는데 'test' 가 아니라 아무 거나 처도 넘어가 버리는 군요...
이걸 어떻게 해결 할 수 없을까요?

  Hit : 4004     Date : 2011/06/23 08:45



    
Mephist #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
char test[100];
printf(">> ");
scanf("%s", test);

if( strcmp(test, "test")==0 ){
printf("...");
system("PAUSE");}
}
2011/06/24  
reality 감사합니다. 2011/06/24  
$Zero 제시하신 코드는 완전히 어긋난 코드구요 ..
문자열끼리 비교를 원하셨다면 Mephist님의 코드가 정확한 방법입니다.

만약 if("test" == "test") 로 하셨다면, test 상수 문자열의 주소값을 서로 비교하게 됩니다.
(자바의 경우 같은 문자열이 선언될경우 기존에 있던 문자열의 주소를 참조하기때문에 위의 if문으로도 문자열을 구분할 수 있게됩니다. (그래도 바람직한 코드는 아님..)
2011/06/25