뭐가 잘못 된걸까요??
계속 else 로 빠지네요 ㅜㅜ
#include<stdio.h>
char main(void) {
const char * dd = { "장비1" };
const char * aa;
printf("들어가고 싶은 장소를 적어주세요:");
scanf_s("%s", &aa); <- 장비1 을적으면
if (aa == dd){
printf("%s 으로 들어감니다...", aa); <-이게 떠야 하는데 안떠요 ㅜㅜ,
}
else{
printf("잘못 입력 하였습니다.");
}
return 0;
}
뭐가 잘못된거죠????
aa == dd시 문자포인터와 연산합니다. string.h를 추가하시고 strcmp(aa, dd)를 사용하여야합니다.
또한 const char *형태의 변수는 변경될 수 없습니다.
무슨말인지 정확하게 모르겠네요 if 문을 사용할수 없다는건가요???
아니 문자열은 비교함수써야된다구
오류 1. const char* aa; 메모리 할당이 안되있는 곳에 입력을 받으려고 했음, char aa[50]; 같은걸로 바꾸는것을 추천
오류 2. scanf_f 통해서 입력 받을 변수를 넘길때 주소값을 넘기는건데, aa가 이미 주소값이므로 (&aa;)로 넘길게 아니라 aa
오류 3. aa == dd 수식은, 포인터인 aa와 포인터인 dd의 주소값을 비교하는것일 뿐이므로 #include <string.h>를 추가하여 strcmp(aa, dd) == 0 으로 바꾸어야함
>
http://codepad.org/9r9i1OVO
< 이렇게 바꾸면됨
그리고 scanf말고 scanf_s 로 문자열 받으려고 하면 뒤에 버퍼 사이즈를 같이 넣어줘야함 안그러면 문자열 안받아짐 즉 char aa[50]; 이면 scanf_s("%s", aa, 50);