请问我这个程序有什么问题呢,为什么我的TC2.0一编译就自动关掉或者提示出错,这个是一个字符串加密程序的

#include<string.h>#include<stdio.h>#include<math.h>main(){char*s="asdfgasdfg",*p,*t,*... #include<string.h>
#include<stdio.h>
#include<math.h>
main()
{
char *s="asdfgasdfg",*p,*t,*g,*u,*k;
int i,l,j;
clrscr();
l=strlen(s);
strcpy(p,s+l/2);
for(i=0;i<l/2;i++){*(t+i)=*(s+i);}
strrev(p);strrev(t);
strcat(p,t);
j=0;printf("p=%s\n",p);
do{
if(l-j>=5)
{
for(i=j;i<j+5;i++)*(u+i)=*(p+i);j=j+5;

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<l-j;i++)*(k+i)=*(p+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);
}
仍然是崩溃了
你这个只到了前面那个PRINTF,后面异或处理完的PRINTF就没了
展开
 我来答
qizhi0119
2011-01-15 · TA获得超过357个赞
知道小有建树答主
回答量:510
采纳率:0%
帮助的人:238万
展开全部
//我在vc上简单帮调了一下,不太清楚你要干什么所以只调了些基本的崩溃的地方
//主要就是*p,....这些都是指针,并没有真实的空间,所以,没东西可存.
//我全初步分了15个空间,楼主根据自己的想法,不够的再多分点就行了.

#include<string.h>
#include<stdio.h>
#include<math.h>
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<l/2;i++){*(t+i)=*(s+i);}
strrev(p);strrev(t);
strcat(p,t);
j=0;printf("p=%s\n",p);
do{
if(l-j>=5)
{
for(i=j;i<j+5;i++)
*(u+i)=*(p+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<l-j;i++)
*(k+i)=*(p+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);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式