(만드는데 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;
}
잘 돌아가긴 하는데 진부한 부분 있으면 조언좀..
귀찭아서 못 봐준다 나중에 다시 올리셈 - return 0;