문자열 비교부분에서 비교해서 오름차순하는건데요. 이해좀시켜주세요.
카라
#includestdio.h
#includestring.h
void main( )
{
char M[ ][7]={BANANA, APPLE, PEAR, ORANGE};
int a,b;
int N=sizeof(M)/sizeof(M[0]);
char im[7];
printf(정렬 전=);
for(a=0;aN; a++)
printf(%10s,M[a]);
printf(\n);
printf(정렬 후=);
for(a=0;aN-1;a++)
{
for(b=0;bN-1;b++)
if(strcmp(M[b],M[b+1])0){ /*여기 두 문자를 비교하는데요. 어떤것이 큰지 작은지 비교가 되나요
이해좀시켜주세요!!...ㅜㅜ*/
strcpy(im,M[b]);
strcpy(M[b],M[b+1]);
strcpy(M[b+1],im);
}
}
for(a=0;aN; a++)
printf(%10s,M[a]);
}
-
맛조이
M[B]가 M[B+1]보다 크면 IF문을 수행하고 아니면 FOR구문으로 다시 돌아갑니다. 그리고 위의 문장에서는
음수는 나올수가 없습니다..왜냐하면 크냐 작으냐의 문제이니깐요.. -
호빵녀
음수가 나오면 알아서 if가 실행 되지 않고 그냥 넘어 가나요?
-
츄릅
함수 원형은 int strcmp(const char *s1, const char *s2) 이고요 s1s2 인 경우 음수를 s1=s2인 경우 0을 s1s2인 경우 양수를 return합니다
-
가루
strcmp를 msdn에서 보시면 알겠지만, 두 문자를 비교하는건데요 같으면 0 다르면 음수인가 양수인가가 나오거든요? 문자역시 char의 집합이고 , char에서 문자는 아스키코드죠 그래서 첫번째 글자부터 두 스트링을 비교하면서 높은거낮은거를 찾는거에요 음수,양수는 생각이 안나네요 지금 0보다 크면으로 되어있으니, 연관해서 찾아보세요