请各位C++高手帮忙修改一下下面的源代码,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/04/27 15:06:27
#include <iostream>
#include <cstring>
using namespace std;
struct stringy
{
char * str;
int ct;
};
void set(stringy & st,char * ps);
void show(stringy & st,int n=1);
void show(char *ps, int n=1);
int main()
{
stringy beany;
char testing[]="Reality isn't 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! " );
return 0;
}

void set(stringy & st,char * ps)
{
int len = strlen(ps);

st.str = new char[len];
strcpy(st.str,ps);
st.ct = len;
delete [] st.str;
return;
}

void show(stringy & st,int n)
{
for(int i=0;i<n;i++)
{
cout << st.str << endl;
cout << st.ct << endl;<

由于不知道你是想测试什么东西,所以只能把一些错误找到!
其余的靠你自己了啊!!

#include <iostream>
#include <cstring>
using namespace std;
struct stringy
{
char *str;
int ct;
};
void set(stringy & st,char ps[]);
void show(stringy & st,int n=1);
void show(char *ps, int n=1);
int main()
{//不知道你这些是什么功能啊!!!有点乱
stringy beany;
char testing[]="Reality isn't 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! " );
return 0;
}

void set(stringy & st,char ps[])
{
int len = strlen(ps);

st.str = new char[len+1]; //因为字符串结尾是有默认的附加'\0',所以多加一个
strcpy(st.str,ps);

cout<<st.str <<endl;//这句就可以看出已经赋值了!!
st.ct = len;
delete [] st.str; //这里就去掉的话,意思就是把