22019, 1/1101 회원가입  로그인  
   해커 Hades
   c언어 문제

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


int main(int argc, char *argv[])
{
     char name[20];
        printf("당신의 이름을 입력하세요. :");
        gets(name);
        if(name == hack)
        {
                    pritnf("해킹");
                    }
  
  system("PAUSE");        
  return 0;
}
"hack"이라 쓰면 "해킹"이라고 떠야되는데 왜안뜨나요???

  Hit : 9011     Date : 2012/10/24 10:10



    
해커 Hades 도와주세요! 2012/10/24  
rchin if(name == 'hack')
이렇게 따음표 해보세요
2012/10/24  
wva11cdae char name[];
아님 이렇게 해보시는건 어때요?
2012/10/25  
ka0r1 name이라는 이름 자체는 배열의 주소를 의미합니다.
if(name == hack)이라는 C언어를 인간의 언어로 해석하면
"name == hack은 name이라는 배열의 주소가 변수 hack과 같으면"이라는 뜻이 됩니다.
즉 아래와 같은 코드로 작성을 해야 됩니다.



#include <stdio.h>

int main(int argc, char *argv[])
{
char name[20];

printf("당신의 이름을 입력하세요 : ");
gets(name);

if(!strcmp(name, "hack")){
printf("해킹\n");
}

return 0;
}
2012/10/25  
해커 Hades 감사합니다!!!! 2012/10/25  
해커 Hades ka0r1님 그런데 !strcmp는 뭐에요? 2012/10/25  
ka0r1 !는 부정을 의미하고 strcmp는 함수를 의미합니다.
strcmp함수의 자세한건 검색을 해보세요.
2012/10/25  
해커 Hades 감사합니다 2012/10/25