| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3821 人关注过本帖
标题:请教大家:出现Access violation怎么办?
只看楼主 加入收藏
lousie_1983
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-23
收藏
 问题点数:0 回复次数:5 
请教大家:出现Access violation怎么办?

自己写了一个程序,编译出来没有错误了,但是一运行就会出现0xC0000005:Access viol
ation.请教大家这是怎么回事啊?谢谢啊。
程序如下:
#include<stdio.h>
#include<iostream.h>
#include<string.h>

char len='a'-'A';
void trans(char *a)
{
if((*a)>'Z'){*a=*a-len;}
}

void check(char *p)
{trans(p);
char str1[27],str2[26];
char alph[26]={'A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q
','R','S','T','U','V','W','X','Y','Z','\0'};
int i,j;
i=0;
str1[i]=*p;
p++;
i++;
in:while(*p)
{trans(p);
for(j=0;j<i;j++)
{if(str1[j]==*p)
{p++;goto in;}

else continue;}
str1[i]=*p;i++;p++;
};
if(!(*p))
{int k;
char *q;
int m=0;
q=alph;
on:while(*q)
{
for(k=0;k<=i;k++)
{if(*q==str1[k])
{q++;goto on;}

else continue;}
str2[m]=*q;q++;m++;
};
}
strcat(str1,str2);
int n=0;
for(n=0;n<=25;n++)
cout<<str1[n]<<endl;
}


void main()
{char buf[200];
cout<<"please input the key:"<<endl;
scanf("%s",buf);
check(buf);
printf("\n");
char a ;
cin>>a;
}

搜索更多相关主题的帖子: violation Access 
2007-06-23 14:21
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 

看错了。

[此贴子已经被作者于2007-6-23 14:40:30编辑过]


深山苦学C语言,终年不见外面世界。
2007-06-23 14:39
lousie_1983
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-23
收藏
得分:0 
??????????
2007-06-23 16:56
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
你这个程序的作用是什么?

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-06-23 17:05
lousie_1983
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-23
收藏
得分:0 

我修改了一些依然不行;
#include<stdio.h>
#include<iostream.h>
#include<string.h>

char len='a'-'A';
void trans(char *a)
{
if((*a)>'Z'){*a=*a-len;}
} //将输入字母变成大写;

void check(char *p)
{trans(p);
char str1[27],str2[26];
char alph[26]={'A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\0'};
int i,j;
i=0;
str1[i]=*p;
p++;
i++;
in:while(*p)
{trans(p);
for(j=0;j<i;j++)
{if(str1[j]==*p)
{p++;goto in;}

else continue;}
str1[i]=*p;i++;p++;
}; //将输入密钥中重复的字母去掉放在数组str1[]中;

if(!(*p))
{int k;
char *q;
int m=0;
q=alph;
on:while(*q)
{
for(k=0;k<=i;k++)
{if(*q==str1[k])
{q++;goto on;}

else continue;}
str2[m]=*q;q++;m++;
};
if(!(*q))
str2[m]='\0';
} //将alph数组中的字母按顺序放到str2中,如果其中有字母在str1中出现过就越过该字母;
strcat(str1,str2); //将str1和str2中的内容合并到str1中;
int n=0;
for(n=0;n<=25;n++)
cout<<str1[n]<<endl;
}


void main()
{char buf[200];
cout<<"please input the key:"<<endl;
scanf("%s",buf);
check(buf);
printf("\n");
char a ;
cin>>a;
}



这一部分主要是实现输入一个密钥,然后将其中重复的字母去掉,放入str1,然后把alph数组中在str1中没有出现的字母按照英文字母的顺序放入str2,最后把str2合并到str1中。

比如如果输入密钥是MONARCHY的话,结果应该是MONARCHYBDEFGIKLPQSTUVWXZ。
当我运行时出现Access violation,按确定出现47464544 ???
麻烦各位帮我看看是什么原因,谢谢了

2007-06-23 17:26
BEINGJESSE
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-5-15
收藏
得分:0 
好乱。。。

JUST FOR FUN
2007-06-25 08:39
快速回复:请教大家:出现Access violation怎么办?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013191 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved