(만드는데 3시간 걸림..시발)


문제는


1.입력하려는 단어가 몇개인지 물어봄    (예를 들어 5개라고 침)

2.사용자에게 단어 5개넣은 문장을 입력하라고 시킴.

3.사용자가 단어5개를 넣은 문장 입력함.

4.문장속 단어를 화면에 출력.


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

char** func1(int k);  // malloc 만들고  주소 리턴 
char* func2(char** ptr,int k);    


int main(void){
 
 
 int many;
 char** pp;
 char* pp1;
 int x;
 
  printf("How many words do you wish to enter? ");
 
  scanf("%d",&many);
  getchar();
  
  printf("enter %d words now: ",many);
  pp=func1(many);   //일단 사용자가 요청한 단어수를 각각 저장할 포인터 배열을 확보
  pp1=func2(pp,many);  //사용자가 입력한 단어를  func2 함수를 이용해서 포인터에 저장.
  
  printf("here are your words: ");
  for(x=0;x<many;x++)
  puts(pp[x]);
  
  free(pp);
  free(pp1);
   
 
 
 return 0;
}

char** func1(int k){
 
 char** ar;
 
 ar=(char**)malloc(k*sizeof(char*)); 
 
 return ar;  
 
 
 
 
}

char* func2(char** ptr,int k){
 
 char ch;
 int count=0;
 int z=0;
 int words=0;
 char* aa;
 
 aa=(char*)malloc(200*sizeof(char)); 
 
 while((ch=getchar())!=EOF)  
 { 
  if(isspace(ch))   
   { 
    if(z==0)
    continue;
    else
    { 
     z=0;
     words+=1;
     aa[count]='';
     count++;
    
    }
   }
  if(!isspace(ch))
  { 
   if(z!=0)
   { 
    aa[count]=ch;
    count++;
   
   
   }
   else
   { 
    z=1;
    aa[count]=ch;
    ptr[words]=aa+count;
    count++;
   
   }
  
  }
  
  if(words>=k)
  break;
  }
  
  if(ch!=' ')
  { while(getchar()!=' ')
     continue;
  }

 
 
 return aa;
 
}



잘 돌아가긴 하는데 진부한 부분 있으면 조언좀..