[컴퓨터_인터넷] C언어 프로그래밍 관련 질문입니다.
본문
일단 프로그램 코드는 이렇습니다.
#include <stdio.h>
#include <string.h>
int main(void){
int i=0;
char *in=new char[100];
char *ans = "bicycle";
char *string[20]={{"not a living ting."},{"It's solid and yielding"},{"It can exercise."},{"It moves by passive"},{"It has a foothold."},{"Not raining"},{"It can have horn."},{"It's expensive"},{"It has basket."},{"It has two legs."},{"It has a brake."},{"It can carry two people."},{"It has gear."},{"It has a wheel."},{"It has a cover"},{"It has many kinds of things."},{"It can painted by any color."},{"It can used by anyone."},{"It has a hole."},{"It's fun."} };
while(i<20){
printf("답을 입력: ");
scanf("%s", in);
fflush(stdout);
if(strcmp(ans,in) == 0){
printf("excellent! %d번만에 맞추셨습니다.\n",i+1);
break;
}
else
printf("%d. %s\n",i+1, string[i]);
i++;
if(i==20)
printf("스무고개가 끝이 났습니다. 더이상 힌트는 없습니다.\n");
}
return 0;
}
여기서 궁금한 게 왜 FOR 반복문이 아니라 WHILE 반복문을 사용한 건가요? 꼭 WHILE 반복문을 사용하는 이유라도 있나요? 그리고 strcmp()에 대해서 조금만 자세히 설명해주시면 좋겠습니다. 두 문자열을 비교하는 함수라는 건 알겠는데 역시 잘 모르겠더군요.
- 1.88Kbytes
최신글이 없습니다.
최신글이 없습니다.
제목 | 글쓴이 | 날짜 | 뷰 | 추천 | ||
---|---|---|---|---|---|---|
GhostX-9 4,785 0 2010.05.31 | ||||||
잉꼬사만코 3,552 0 2010.05.31 | ||||||
아리에타 3,484 0 2010.05.31 | ||||||
STW님 3,531 0 2010.05.31 | ||||||
아르딘 3,509 0 2010.05.31 | ||||||
윈터어썰트 2,999 0 2010.05.31 | ||||||
치르코 3,139 0 2010.05.30 | ||||||
치르코 4,257 0 2010.05.30 | ||||||
viggy 3,218 0 2010.05.30 | ||||||
떠돌이 3,536 0 2010.05.30 | ||||||
망고 3,472 0 2010.05.30 | ||||||
레존드달묘 3,583 0 2010.05.30 | ||||||
아라시엘 3,799 0 2010.05.29 | ||||||
밥딜 2,980 0 2010.05.29 | ||||||
복돌이사냥 3,695 0 2010.05.29 |
댓글목록 1
루트님의 댓글
banana는 apple보다 사전상에서 뒤에 오므로, 1을 리턴해줍니다.<br>(오른쪽 문자열이 먼저오므로 1)<br>a를 출력하면 1이 나옵니다.<br><br>문자열의 순서 비교는 각 문자의 아스키 코드값을 비교하여 진행되는데,<br>대문자와 소문자의 아스키 코드값이 따로 정해져 있습니다.<br>예를 들자면 A는 65, a는 97의 값을 가집니다.<br>B는 66, b는 98 이런 식으로 가지요.<br>대문자가 소문자보다 순서에서 빠릅니다.(아스키 값이 작습니다.)<br>A~Z까지는 65~90. a~z까지는 97~122까지의 값이 배정되어 있습니다.<br><br>따라서,<br>a=strcmp("Apple","apple")일 경우,<br>
A(65)가 a(97)보다 값이 작으므로(먼저 오므로), -1을 리턴해줍니다.<br>
(왼쪽 문자열이 먼저오므로 -1)<br>
a를 출력하면 -1이 나옵니다.<br>