生活随笔
收集整理的這篇文章主要介紹了
C++primer plus第六版课后编程题答案8.3(正解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在百度知道里面得到了正確的答案
http://zhidao.baidu.com/question/198940026560129285.html?quesup2&oldq=1
#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=strlen(t);//在這里,t已經退化成了一個指針,不能用sizeof獲取長度!!!int size=sizeof(t);//這里出了問題,長度測試錯誤,當長度超過八個字符是,直接出錯!cout<<"size="<<size<<endl;beany.str=new char[size+1];strcpy(beany.str,t);int sizeofStr=strlen(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;};}elsecout<<"str="<<beany.str<<endl;}
void show(const char t[],int count)
{cout<<"Testing show:"<<endl;if(count==0)cout<<"str="<<t<<endl;elsefor(int i=0;i<count;i++){cout<<"Testing show:"<<i<<endl;cout<<"str="<<t<<endl;}}
轉載于:https://www.cnblogs.com/qq84435/p/3664871.html
總結
以上是生活随笔為你收集整理的C++primer plus第六版课后编程题答案8.3(正解)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。