• C++primer plus第六版课后编程题答案


    8.4

    这道题有个BUG,我暂时还是无法解决,谁解决的麻烦告诉下我


    #include<iostream>
    #include <string>//出问题时,使用的是cstring,但换成string一样出问题
    using namespace std;
    struct stringy{
    	char *str;
    	int ct;
    };
    void set(stringy &beany,const char t[]);
    void show(const stringy &beany,int count=0);
    void show(const char t[],int count=0);
    void main84()
    {
    	stringy beany;
    	//char testing[]="Reality isn't what it used to be.";
    	char testing[]="Reality";//what it used to be.";
    	set(beany,testing);
    	show(beany);
    	show(beany,2);
    	testing[0]='D';
    	testing[1]='u';
    	show(testing);
    	show(testing,3);
    	show("Done!");
    	cout<<beany.str<<endl;
    	cout<<"here is in"<<endl;
    	
    	if(beany.str!=NULL)	//总会引起中断,说是堆损坏
    	{
    		delete []beany.str;
    		cout<<"no null"<<endl;
    	}
    	else 
    		cout<<"str is null";
    
    	system("pause");
    	
    
    
    }
    
    void set(stringy &beany,const char t[])
    {
    	//delete beany.str;
    	int size=sizeof(t);//这里出了问题,长度测试错误,当长度超过八个字符是,直接出错!
    	cout<<"size="<<size<<endl;
    	beany.str=new char[size+1];
    	strcpy(beany.str,t);
    	int sizeofStr=sizeof(beany.str);
    	cout<<"Sizeofstr="<<sizeofStr<<endl;
    	beany.ct=size;
    
    
    }
    
    void show(const stringy &beany,int count)
    {
    	cout<<"Stringy show"<<endl;
    	if(count!=0)
    	{
    		for(int j=0;j<count;j++)
    		{
    			//cout<<"in stringy here!"<<j<<endl;
    			//cout<<"Stringy show"<<j<<endl;
    			cout<<"str="<<beany.str<<endl;
    		};
    	}
    	else
    		cout<<"str="<<beany.str<<endl;
    	
    }
    void show(const char t[],int count)
    {
    	cout<<"Testing show:"<<endl;
    	if(count==0)
    		cout<<"str="<<t<<endl;
    	else
    		for(int i=0;i<count;i++)
    		{
    			cout<<"Testing show:"<<i<<endl;
    			cout<<"str="<<t<<endl;
    		}
    
    }


  • 相关阅读:
    java去除string类型里面的中括号
    java深拷贝浅拷贝
    前端接受数据去除[" "]的方法
    sql 查询近6 /xx个月/天 统计数据
    vue 定时器(定时任务)
    vue 二维码判断手机登录是哪个操作系统
    Connection is read-only. Queries leading to data modification are not allowed
    redis一闪而退解决办法
    前端的模糊查找
    vue笔记生命周期里面的某些函数
  • 原文地址:https://www.cnblogs.com/qq84435/p/3664872.html
Copyright © 2020-2023  润新知