C++primer plus第六版课后编程题答案8.3
2014-04-10 14:48
323 查看
8.3
我在DEV c++里面却不会出问题,实在是不知道为什么这么神奇
下面是我在DEV c里面测试的源代码
#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);
int main()
{
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);
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;
}
#include <iostream> #include <cctype> #include<string> using namespace std; const int MAX=50; void change(string &s); void main83() { string s="chenggSHIguang"; //char ch='\0'; change(s); while(s!="q"&&(s.length()!=1)) { cout<<"Next string (q to quit):"<<endl; getline(cin,s); change(s); } cout<<"Bye"<<endl; //cin.get(); system("pause"); } void change(string &s) { int size=s.length(); cout<<s<<"\nsize="<<size<<endl; //char ch; for(int i=0;i<size;i++) { //cout<<"i="<<i<<"\nsi="<<s[i]<<endl; s[i]=toupper(s[i]); } cout<<s<<endl; }
我在DEV c++里面却不会出问题,实在是不知道为什么这么神奇
下面是我在DEV c里面测试的源代码
#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);
int main()
{
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);
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;
}
相关文章推荐
- C++primer plus第六版课后编程题答案8.3(正解)
- C++primer plus第六版课后编程题答案8.3
- C++primer plus第六版课后编程题答案8.3(正解)
- C++primer plus第六版课后编程题答案 6.2
- C++primer plus第六版课后编程题答案10.4
- C++ primer plus 第六版 课后答案 8.3
- C++primer plus第六版课后编程题答案 6.2
- C++primer plus第六版课后编程题答案 6.9
- C++primer plus第六版课后编程题答案7.3
- C++primer plus第六版课后编程题答案7.8b
- C++primer plus第六版课后编程题答案9.3
- C++primer plus第六版课后编程题答案10.1
- C++primer plus第六版课后编程题答案11.3
- C++primer plus第六版课后编程题答案13.3
- C++primer plus第六版课后编程题答案16.5
- C++primer plus第六版课后编程题答案17.2
- C++primer plus第六版课后编程题答案 6.4
- C++primer plus第六版课后编程题答案 6.9
- C++primer plus第六版课后编程题答案7.3
- C++primer plus第六版课后编程题答案7.8b