전화번호 등록 프로그램 만들고 있는데요
구조체 이용해서 하는건데..
"등록" 함수 부분을 while로 계속 돌려주다가
이름에 end가 입력되면 등록을 빠져나오는거로 하려고 했는데.
while 안에서 3행에 저렇게 if문을 적어줘도 안 빠져나오고 계속 돌아가네요
혹시 뭐가 문제인지 알려주실수있을까요 ㅠㅠ
전화번호 등록 프로그램 만들고 있는데요
구조체 이용해서 하는건데..
"등록" 함수 부분을 while로 계속 돌려주다가
이름에 end가 입력되면 등록을 빠져나오는거로 하려고 했는데.
while 안에서 3행에 저렇게 if문을 적어줘도 안 빠져나오고 계속 돌아가네요
혹시 뭐가 문제인지 알려주실수있을까요 ㅠㅠ
&도 없는데 멀 하시겠다는거죠?
ㅇㅅㅇ... &를 넣고 한번해보시죠 ㅇㅅㅇ
%s라 상관없긴한데 하는게 좋을듯
제 생각엔 user[*num].name에 "end"라는 문장이 안들어가서 그런것같아요
&user[*num].name <-이거말하시나요?
'end'이거 자체도 " " 이걸로 해야됨
네네 %s랑 &는 상관없긴한데, 해두시는게 좋아요. 그거 빼고, 문제가 되는 부분은 user[*num].name에 end라는 문장이 들어가야 break;가 되는데, "end" 이렇게 해야입력되는데 'end'잖아요
user[].name이 type이 먼지 잘 모르겠지만, string 타입이 되야하는 것도 잊지 않으셔야해요!
아니면 반복문으로 해서, user[*num].name[i]; 가 하셔도 되는데, string이 잘 쓰면 편해요
이해안되시는 부분이 있으신가요?
string은 c언어 라이브러리로 include string.h 파일을 불러오면 꺼내서 쓸 수 있으니 참고하세요
다른 방법으로 해결했습니다 댓글은 감사해요
'end' 이걸 "end"로 해야되는 이유는 e n d 따로 입력 받는게 아니라, end한꺼번에 입력받는건데, ' '이거 자체가 문자 하나를 아스키코드로 변환해서 확인하는거라, end는 문장이기 때문에 다 인식이 안되요.(컴파일에 따라 작동안되거나, 마지막꺼만 숫자가 들어오거나 등등 그럴지도...), 따라서 user[*num].name[i]=='e' 이런식으로 if(i+1=='n') 계속 해야되는데, 노가다기도하고 귀찮은 작업이기 때문에, 한번에 입력할 수 있는 string 추천해드린겁니다 string으로 하면 "end"한번에 확인 할 수 있어요
그렇군요..C언어의 길..
name char*로 만든거 아님? string도 아니고 char* 문자열은 저런식으로 비교 불가능함
C스타일 문자열을 고수할거라면 strcmp 같은걸 써야지 ㅇㅅㅇ
대충 그 방식으로 해결한거 맞아요 ㅎㅎ 감사여