stcmp 함수를 사용해서 문자열이 같은지 안 같은지 비교하려고 하는데 어디가 잘못된 것인지좀 봐주세요.
글쓴이: seojh1431 / 작성시간: 화, 2014/07/08 - 4:58오후
void select(int i, struct hakseang *student, int count)
.
.
.
.
switch 구문에서
for (i = 0; i < 3; i++)
{
if (strcmp((student + num)->bookTitle[i], (student + num)->bookTitle[n - 1]) == 0) // 이부분에 코딩오류가 있는것 같습니다.
{
for (int all = 0; all < 10; all++)
(student + all)->state[n - 1] = 0;
(student + num)->countBook--;
printf("%s를 반납하셨습니다.\n", (student + num)->bookTitle[n - 1]);
printf("남은 권 수 : %d\n", (student + num)->countBook--);
break;
}
.
.
.
.
이 부분에서 저기 strcmp 함수부분에 같은 문자열이라고 판정이 되면 if문이 실행되야하는데
제가 어떤 착오를 했는지는 모르겠지만..else로 들어가버리네요.. 가르쳐주세요 ㅜㅜ 파일 올릴게요 ㅜ
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 6.5 KB |
Forums:
앞뒤 코드는 안봤습니다만..
for (i=0; i<3; i++) 안에 if가 있는데, else에 걸리면 break때문에 for문이 멈춥니다.
3번 다 돌아야 원하시는 결과 나오는거 아닌가요?
그 외 문제라면 다음분께 양보하겠습니다.
소곤소곤
넹.... 맞습니다 ㅎ 그렇네여
ㅇ
전체적인 구조가 문젠데... 일단 해당 현상에 대해서
전체적인 구조가 문젠데... 일단 해당 현상에 대해서 말씀드리면, 해당 구문이 비교하는건 해당 학생의 i번째 빌린 책과 현재 선택한 책이 같도록 짜야 하는데 (student + num)->bookTitle[n - 1] 은 현재 선택한 책이 아니죠. 책 목록을 저장해 놓고 그 목록의 n번채 책이랑 학생의 i번째 책을 비교해야 맞는게 되겠죠.
댓글 달기