//我在vc上简单帮调了一下,不太清楚你要干什么所以只调了些基本的崩溃的地方
//主要就是*p,....这些都是指针,并没有真实的空间,所以,没东西可存.
//我全初步分了15个空间,楼主根据自己的想法,不够的再多分点就行了.
#include
#include
#include
void main()
{
char *s="asdfgasdfg";
int i,l,j;
char p[15] = {0};//p没有分配空间,存不了s+l/2,也不能cat,要是用*p的话,下面就要malloc,我改成静态分配的了
char t[15] = {0};//同上
char u[15] = {0};//同上
char g[15] = {0};//同上
char k[15] = {0};//同上
// clrscr(); //我在VC上调的,这个没有,TC的话你你试的时候打开看看吧
l=strlen(s);
strcpy(p,s+l/2);
for(i=0;i
strcat(p,t);
j=0;printf("p=%s\n",p);
do{
if(l-j>=5)
{
for(i=j;i
j=j+5;//这个是不是在for里哪??要是的话得加大括号;下面分支同理
if(*(t+0)<'@')
*(u+0)=*(u+0)^106;
if(*(t+1)<'@')
*(u+1)=*(u+1)^119;
if(*(t+2)<'@')
*(u+2)=*(u+2)^99;
if(*(t+3)>='@')
*(u+3)=*(u+3)^48;
if(*(t+4)>='@')
*(u+4)=*(u+4)^49;
strcat(g,u);
}
else
{
for(i=j;i
j=l;
if(*(t+0)<'@')*(k+0)=*(k+0)^106;
if(*(t+1)<'@')*(k+1)=*(k+1)^119;
if(*(t+2)<'@')*(k+2)=*(k+2)^99;
if(*(t+3)>='@')*(k+3)=*(k+3)^48;
strcat(g,u);
}
}while(j=l);
printf("%s",g);
}