c++写的三星应用程序停止运行一运行就停止工作

查看:6017|回复:4
复制内容到剪贴板代码:#include &iostream.h&
#include &conio.h&
#include &string.h&
class String
String(){};
~String(){};
String SubString(int pos,int num);
void Insert(String t,int pos);
void Delete(int pos,int num);
void Creat();
void Display();
//生成新字符串函数
void String::Creat()
char *s=&xxxxx&;
size=strlen(s);
str=new char[size];
if (str==0)
cout&&&没有申请到空间!&;
strcpy(str,s);
void String::Display()
for (i=0;i&i++)
String String::SubString(int pos,int num)
if (pos&1||pos&size)
for (int i=0;i&i++)
tem.str=tem.str[pos+i];
tem.size=-1;
//插入运算:在串对象s的pos位置后插入一个串t
void String::Insert(String t,int pos)
if (pos&1||pos&size)
cout&&&输入的位置非法&;
tem.size=size+t.size-1;
tem.str=new char[tem.size];
for(int i=0;i&pos-1;i++)
for(int j=0;j&size-1;j++)
tem.str[i=pos-1]=t.str[j];
for(int k=pos-1;k&=size-1;k++)
tem.str[k+size-1]=str[k];
//删除:删除串中的一个串
void String::Delete(int pos,int num)
if (pos&1||pos&size)
cout&&&输入的位置非法&;
tem.size=size-(pos+num)-1;
tem.str=new char[tem.size];
for(int i=0;i&pos-1;i++)
for(int k=pos-1;k&=size-1;k++)
tem.str[k+size-1]=str[k];
int main(int argc, char* argv[])
int pos,num,k;
String s,s1,t;
do{ cout&&&\n\n 1.生成字符串& ;
cout&&&\n\n 2.取子串&;
cout&&&\n\n 3.插入子串s1&;
cout&&&\n\n 4.删除子串&;
cout&&&\n\n 5.结束程序&;
cout&&&\n******************************** &;
cout&&&\n 请输入你的选择(1,2,3,4,5)&; cin&&k;
switch(k){
case 1:{cout&&&请输入一个字符串:&;
s.Creat();
cout&&&字符串为: &; s.Display();
case 2:{ cout&&&请输入子串的截取位置pos及子串长度num&&&
cin&&pos&&
t=s.SubString(pos,num);
cout&&&你所取的子串为:  &; t.Display();
case 3:{ cout&&&请输入子串插入位置pos&&&
cout&&&请输入要插入的子串: &; s1.Creat();
s.Insert(s1,pos);
cout&&&插入后的字符串为: &; s.Display();
case 4:{ cout&&&请输入要删除子串的开始位置pos及子串长度num&&&
cin&&pos&&
s.Delete(pos,num);
cout&&&删除后的字符串为: &;
s.Display();
} //switch
cout&&&\n--------------------------------- &;
while(k&=1&&k&5);
cout&&&\n 再见!&;
cout&&&\n 按任意键,返回。&;
本帖最后由 月夜幻影 于
19:16 编辑
编程要学会自己调试
具体定位错误才好分析原因
下断点一步一步调试看看具体哪里出了问题
真积极啊 想你学习啊
不一定符合你的原意
但是基本搜有函数我都改了复制内容到剪贴板代码:#include &iostream&
#include &conio.h&
#include &string.h&
class String
& & & & String(){};
& & & & String(const String& S);
& & & & ~String(){};
& & & & String SubString(int pos,int num);
& & & & void Insert(String t,int pos);
& & & & void Delete(int pos,int num);
& & & & void Creat();
& & & & void Display();
& & & & char *
String::String(const String& S)
& & & & size=S.
& & & & str=new char[size+1];
& & & & strcpy(str,S.str);
//生成新字符串函数
void String::Creat()
& & & & //char *s=;//不能只想一字符串常量
& & & & char*s=new char[100];
& & & & cin&&s;
& & & & size=strlen(s);
& & & & str=new char[size+1];//还包括'\0'的空间
& & & & if (str==0)
& & & & & & & & cout&&&没有申请到空间!&;
& & & & strcpy(str,s);
& & & & delete[]
void String::Display()
& & & & for (i=0;i&i++)
& & & & & & & & cout&&str[i];
& & & & cout&&
String String::SubString(int pos,int num)
& & & & if (pos&=0&&pos&size) //按你的程序应该是处理输入正常的情况
& & & & & & & & tem.str=new char[num+1];//先申请空间
& & & & & & & & for (int i=0;i&i++)
& & & & & & & & {
& & & & & & & & & & & & tem.str[i]=str[pos+i];//错误,str部分复制到tem.str;
& & & & & & & & }
& & & & & & & & tem.str[num]='\0';
& & & & & & & & tem.size=
& & & & & & & &
& & & & else
& & & & & & & & tem.size=-1;
& & & & & & & &
//插入运算:在串对象s的pos位置后插入一个串t
void String::Insert(String t,int pos)
& & & & if (pos&0||pos&size)
& & & & & & & & cout&&&输入的位置非法&;
& & & & & & & &
& & & & tem.size=size+t.
& & & & tem.str=new char[tem.size+1];
& & & & for(int i=0;i&=pos-1;i++)
& & & & & & & & tem.str[i]=str[i];
& & & & for(int j=0;j&t.j++)
& & & & & & & & tem.str[j+pos]=t.str[j];
& & & & for(int k=k&k++)
& & & & & & & & tem.str[k+t.size]=str[k];
& & & & delete[]
& & & & str=tem.
& & & & size=tem.
//删除:删除串中的一个串
void String::Delete(int pos,int num)
& & & & if (pos&0||pos&size)
& & & & & & & & cout&&&输入的位置非法&;
& & & & & & & &
& & & & else
& & & & & & & & S
& & & & & & & & tem.size=size-
& & & & & & & & tem.str=new char[tem.size+1];
& & & & & & & & for(int i=0;i&=pos-1;i++)
& & & & & & & & {
& & & & & & & & & & & & tem.str[i]=str[i];
& & & & & & & & }
& & & & & & & & for(int k=k&=size-k++)
& & & & & & & & {
& & & & & & & & & & & & tem.str[k]=str[k+num];
& & & & & & & & }
& & & & & & & & delete []
& & & & & & & & str=tem.
& & & & & & & & size=tem.
int main(int argc, char* argv[])
& & & & int pos,num,k;
& & & & String s,s1,t;
& & & & do{ cout&&&\n\n 1.生成字符串& ;
& & & & cout&&&\n\n 2.取子串&;
& & & & cout&&&\n\n 3.插入子串s1&;
& & & & cout&&&\n\n 4.删除子串&;
& & & & cout&&&\n\n 5.结束程序&;
& & & & cout&&&\n******************************** &;
& & & & cout&&&\n 请输入你的选择(1,2,3,4,5)&; cin&&k;
& & & & switch(k){
& & & & case 1:{cout&&&请输入一个字符串:&;
& & & & & & & & s.Creat();
& & & & & & & & cout&&&字符串为: &; s.Display();
& & & & & & & && & }
& & & & case 2:{ cout&&&请输入子串的截取位置pos及子串长度num&&&
& & & & & & & & cin&&pos&&
& & & & & & & & t=s.SubString(pos,num);
& & & & & & & & cout&&&你所取的子串为:  &; t.Display();
& & & & & & & && & }
& & & & case 3:{ cout&&&请输入子串插入位置pos&&&
& & & & & & & & cin&&
& & & & & & & & cout&&&请输入要插入的子串: &; s1.Creat();
& & & & & & & & s.Insert(s1,pos);
& & & & & & & & cout&&&插入后的字符串为: &; s.Display();
& & & & & & & && & }
& & & & case 4:{ cout&&&请输入要删除子串的开始位置pos及子串长度num&&&
& & & & & & & & cin&&pos&&
& & & & & & & & s.Delete(pos,num);
& & & & & & & & cout&&&删除后的字符串为: &;
& & & & & & & & s.Display();
& & & & & & & && & }
& & & & default:
& & & & } //switch
& & & & cout&&&\n--------------------------------- &;
& & & & while(k&=1&&k&5);
& & & & cout&&&\n 再见!&;
& & & & cout&&&\n 按任意键,返回。&;
& & & & return 0;
只有你爬到山顶了,这座山才会支撑着你。
谢谢你的指导,我开始学调试……
我写的代码错的太多了,谢谢你帮我改了那么多……我要好好努力……
学习态度很好!加油!
本帖最后由 weifule20 于
21:49 编辑程序编译能通过,但运行就显示程序已停止工作,求问什么情况【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:294,962贴子:
程序编译能通过,但运行就显示程序已停止工作,求问什么情况收藏
#include &iostream&char * dif(char s1[],char s2[]){char *p=s1,*q=s2;while(*p=*q){p++,q++;}if(*p!='\0')elsereturn NULL;}void main(){char s1[100],s2[100];cout&&&请输入两个字符串:&&&cin&&s1;cin&&s2;char *p=dif(s1,s2);while (*p!='\0'){cout&&*p;p++;}cout&&&s1包含于s2。&&&}
阿里云云市场提供功能丰富的发者必备软件,帮助用户快速简便的操作和管理云主机服务器以及虚拟主机的管理系统
while()里面的=号是复制,判断相等用==
登录百度帐号推荐应用2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本帖子已过去太久远了,不再提供回复功能。22被浏览4972分享邀请回答scanf("%i", numFibs);
scanf("%i", &numFibs);
说实话我并没有注意到两幅图的区别,我只是单纯的打开了VS,然后瞬间把第二张截图里面的代码敲了进去运行……1840 条评论分享收藏感谢收起scanf("%i", numFibs);
这行代码在第一张截图里是&numFibs。28 条评论分享收藏感谢收起查看更多回答

我要回帖

更多关于 应用程序停止运行 的文章

 

随机推荐