|
해결을 했습니다..
우선 temp를 char형으로 바꿔서.. char temp[10]; 으로 하고..
변수의 값을 바꾸는데 strcpy를 사용했더니 아무문제 없이 실행이 되더군여...
즐프하세여.. ^^
jabberwock 님이 쓰신 글 :
: 우선 코스를 보시져..
:
: #include<stdio.h>
: #include<stdlib.h>
: #include<string.h>
:
: void swap(int *a, int *b)
: {
: int temp;
:
: temp=*a;
: *a=*b;
: *b=temp;
: }
:
: void main()
: {
: int i,j;
: char word[5][10];
: int num_length[5];
:
: for(i=0; i<5; i++)
: {
: printf("Enter your Words : >> ");
: scanf("%s",word[i]);
: }
:
: for(i=0; i<5; i++)
: num_length[i]=strlen(word[i]);
:
: printf("<< Input Words >>\n");
: for(i=0; i<5; i++)
: printf("%s:\tlength = %d\n",word[i],num_length[i]);
:
: for(i=0; i<5-1; i++)
: {
: for(j=i+1; j<5; j++)
: {
: if(strcmp(word[i], word[j])>0)
: swap(word[i],word[j]);
: }
: }
:
: printf("\n<< Sorted Words >>\n");
: for(i=0; i<5; i++)
: printf("%s:\tlength = %d\n",word[i],num_length[i]);
: }
:
: 문자열을 swap해야 하는데..
: 이 프로그램을 실행 시키면.. 두가지 문제점이 생깁니다..
:
: 첫번째는 swap(word[i],word[j])부분에 char형을 함수로는 int형으로 받아서 문제가 생기고..
:
: 두번째는 실행을 하면 문자열을 swap으로 넘길대 포일터를 사용하니.. 전체의 문자열이 바뀌지 않고
: 입력한 만큼만 바뀝니다. 예를 들어서..
: 첫번째 kiwi 두번째 apple라고 하면..
: 결과는 첫번재 appl 두번째 kiwie 라고 나옵니다.
:
: 아무리 생각해도 어케 해야하는지 모르겠습니다..
: 워낙 초보에다가 프로그램을 별루 안짜봐서..
: 그럼 답변 부탁드립니다.
:
|