char s[20]=\"\";
do{
gets(s);
setInputLIne(&flag,&head,s);
printf(\"s -> %s\\n\",s);
}while(s!=\"exit\");
while(!(head))
{
printf(\"%s\\n\",head->str);
head=head->link;
}
s에 exit 넣어도 종료가안돼 왜그런거야? gets 할때 문자열+널값 가지 들어간느거아님?
아니면 s[20]에 문자열들어가고 남은공간 스페이스 넣은다음 마지막에 널값임?
s!=\"exit\" 가 문자열 비교가 아니거등
병신등장 [핡]
얘는 아무래도 구조적문제가있는거같다 자료구조하기전에 c한번더 하구와
너 자주와라 개념 은꼴 잘올리네 [파워 넥스]
문자배열은 문자열이 될수있지만 원류는 상수포인터라 보면되 [파워 넥스]
exit는 메모리상 static 영역 어딘가 exit\\0이 있는곳에 e의 주소지 [파워 넥스]
문자열비교함수를 써야제
아 이해함 자바하다가 씨하다보니...strcmp 서서 해결함
merce// s !=\'exit\' 에서 s는 s[0]을 가르키는거지?
s == &s[0]
char s[20] 선언했고...char는 1byte 한문자만 입력되니까........ s!=\"exit\" 에서 s는 s[0]인건가요? 만약 그렇다면 s!=\'q\'는 왜 안되는 걸까염. 누가 설명점
ㅋㄱ/ s가 s[0]의 주소에요? 값이아니고?
배열의 이름은 배열의 시작주소이다.. 이런거 배열 배울때 안하셨습니까...
배웠는데...이해가..ㅠㅠ 그러면 s!=\"exit\"는 s의 주소와 비교하고 있는거군요?? 그러면 s!=\'q\'은 안되는거지만.. \' \' 이거사용하면 안되는이유좀...
s != \'q\' 이거 말인가??? \' \' 이걸 뭘 어떻게 사용?
ㅋㄱ/ s!=\"exit \" 하면 에러는안나는데 s!=\'q\'이렇게 문자랑 비교하면 에러가나더라구요.
배열 주소랑, \"exit\" 라는 문자열 상수가 저장된 주소를 비교하는거고,,,, 뒤에껀 주소랑, q 문자값이랑 비교하는거,,,
오호 감사합니다.!!! 씨는 문자열 끼리 비교가 안되죠?? 함수사용제외하구요
질문자님 벌써 연산자 오버로딩을 구사하시니 크게 되실 듯
안됨..직접 글자 하나씩 비교해줘야함...//(자바는 모르는데 자바도,, == 이거 쓰면 그냥 주소값만 비교해주는거 아닌가...쩝..
ㄴ다시 궁금 ㅜㅜㅜㅜ \"exit\" 라는 문자열 상수의 주소와 왜 비교하는거죠? 뒤에는 \' \'는 문자값을 비교했는데.. \" \" 이것은 문자열 주소와 비교한다는 규칙이 씨에 있음?
그게 주소와 비교한다는 규칙?..이라기 보다.. 문자열상수 \" \" 이렇게 쓰면 그 시작주소를 나타내니까.. char *a = \" ejfief\"; 이렇게 할 수 있듯이,,
오호 완저 ㄴ이해했음 감사합니다.