데이터를 각각의 포인터에 저장후 다시 합치려고 하는데 자꾸 안
부족한 저에게 가르침을 주세염
aaaaa!bbbbbbbbbb!ccccc!helloworld!ddddd!
이런 문자열을 가진 포인터 ptt의 값을 넘겨 받아
케릭터 포인터 aa에 위의 문자열중 "aaaaa!"까지만 저장하고 다른bbbb....!문자열은 bb에 이런식으로
각 문자 포인터에 저장 하려고 합니다
이때 "helloworld!"문자가 저장 되는 data포인터에 exclusive or를 시키고 이것을 cdata에 저장후
따로 따로 저장된 문자들을 packet포인터에 저장 하려고 합니당
제가 할수 있는때가지 했는뎅 안되염 수정좀 해주세염
참 참 여기서 주어지는 문자 포인터aa~dd까지의 크기는 입력값이 얼마나 될지 몰라서 초기화 시키지 않았습니당.(특정상 memcp,strcpy,strcat등의 함수를 못 사용해염---)
---------------제가 만든 소스---------------------------------------
#include <stdio.h>
#include <string.h>
char *sbk_buff();
main()
{
char *pt;
char *aa;
char *bb;
char *cc;
char *data;
char *cdata;
char *dd;
char *packet;
int len,i,clen,c,p,j;
pt=sbk_buff();
len=strlen(pt);
printf("input len:%d\n",len);
printf("\n");
//sbk_buff의 함수에서 받은 데이터를 각 문자 포인터에 저장
for(clen=0,i=0;i<len;i++){
if(i<=5)
aa=pt;
else if(i<=16)
bb=pt;
else if(i<=22)
cc=pt;
else if(i<=33){
data=pt;
clen++;
}
else{
dd=pt;
}
}
for(c=23;c<=clen;c++)
cdata=data^0xff; //data포인터에 있는 데이터를 ^ 시킴
for(p=0;p<=len;p++){
if(p<=5)
packet=aa;
else if(p<=16)
packet=bb;
else if(p<=22)
packet=cc;
else if(p<=33)
packet=cdata;
else
packet=dd;
}
puts(packet);
printf("\n");
for(j=0;j<=len;j++)
printf("packet[%d]:%c",j,packet[j]);
}
char *sbk_buff()
{
char *ptt="aaaaa!bbbbbbbbbb!ccccc!helloworld!ddddd!";
char *ppt;
int i;
for(i=0;i<46;i++)
ppt=ptt;
return ppt;
}
댓글 달기