64,688
社区成员
发帖
与我相关
我的任务
分享
#include<iostream.h>
class Name
{
public:
//Xm(char *a); //没有添加返回值
void Xm(char *a);
//Display(); //没有添加返回值
void Display();
protected:
char *xing;
char *ming;
};
void Name::Xm(char *a)
{
int i;
//这个循环主要是统计姓的字符数,并在下面分配适当的空间
for(i=0;a[i]!=' ';i++)//姓的个数
{
;
}
//根据上面的统计数分配空间
char *name1=new char[i+1];
//进行复制
int j;
for(j=0;j<i;j++)
{
name1[j]=a[j];
}
//最好要加上'\0'
name1[i] = '\0'; //添加'\0'
int k;
//统计剩下的字符数量,即名的个数
for(k=0;a[i+k+1]!='\0';k++)//名的个数 //字符串是以'\0'结尾的,此处写错了
{
;
}
//分配空间
char *name2=new char[k +1];
int m;
//复制
for(m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
//在末尾填上'\0'
name2[m] = '\0';
xing=name1;
ming=name2;
}
void Name::Display()
{
cout<<"xing:"<<xing<<endl;
cout<<"ming:"<<ming<<endl;
}
int main()
{
Name na;
na.Xm("lu ge");
na.Display();
return 0;
}
#include<iostream.h>
#include <memory.h>
class Name
{
public:
void Xm(char *a);
Display();
Name();
virtual ~Name();
protected:
char *xing;
char *ming;
};
Name::Name()
{
xing = NULL;
ming = NULL;
}
Name::~Name()
{
if(xing)
{
delete xing;
xing = NULL;
}
if(ming)
{
delete ming;
ming = NULL;
}
}
void Name::Xm(char *a)
{
for(int i=0;a[i]!=' ';i++)//ÐյĸöÊý
{
;
}
char *name1=new char[i+1];
memset(name1, 0, i+1);
for(int j=0;j<i;j++)
{
name1[j]=a[j];
}
for(int k=i;a[k]!='\0';k++)//ÃûµÄ¸öÊý
{
;
}
char *name2=new char[k];
memset(name2, 0, k);
for(int m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
xing=name1;
ming=name2;
}
Name::Display()
{
cout<<"xing:"<<xing
<<" ming:"<<ming
<<endl;
}
void main()
{
Name na;
na.Xm("lu ge");
na.Display();
}
#include<iostream.h>
#include <memory.h>
class Name
{
public:
void Xm(char *a);
Display();
Name();
virtual ~Name();
protected:
char *xing;
char *ming;
};
Name::Name()
{
xing = NULL;
ming = NULL;
}
Name::~Name()
{
if(xing)
{
delete xing;
xing = NULL;
}
if(ming)
{
delete ming;
ming = NULL;
}
}
void Name::Xm(char *a)
{
for(int i=0;a[i]!=' ';i++)//ÐյĸöÊý
{
;
}
char *name1=new char[i+1];
memset(name1, 0, i+1);
for(int j=0;j<i;j++)
{
name1[j]=a[j];
}
for(int k=i;a[k]!='\0';k++)//ÃûµÄ¸öÊý
{
;
}
char *name2=new char[k];
memset(name2, 0, k);
for(int m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
xing=name1;
ming=name2;
}
Name::Display()
{
cout<<"xing:"<<xing
<<" ming:"<<ming
<<endl;
}
void main()
{
Name na;
na.Xm("lu ge");
na.Display();
}
#include<iostream.h>
#include <memory.h>
class Name
{
public:
void Xm(char *a);
Display();
Name();
virtual ~Name();
protected:
char *xing;
char *ming;
};
Name::Name()
{
xing = NULL;
ming = NULL;
}
Name::~Name()
{
if(xing)
{
delete xing;
xing = NULL;
}
if(ming)
{
delete ming;
ming = NULL;
}
}
void Name::Xm(char *a)
{
for(int i=0;a[i]!=' ';i++)//ÐյĸöÊý
{
;
}
char *name1=new char[i+1];
memset(name1, 0, i+1);
for(int j=0;j<i;j++)
{
name1[j]=a[j];
}
for(int k=i;a[k]!='\0';k++)//ÃûµÄ¸öÊý
{
;
}
char *name2=new char[k];
memset(name2, 0, k);
for(int m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
xing=name1;
ming=name2;
}
Name::Display()
{
cout<<"xing:"<<xing
<<" ming:"<<ming
<<endl;
}
void main()
{
Name na;
na.Xm("lu ge");
na.Display();
}
#include<iostream.h>
class Name
{
public:
void Xm(char *a);
void Display();
protected:
char *xing;
char *ming;
};
void Name::Xm(char *a)
{
int i;
for(i=0;a[i]!=' ';i++)//姓的个数
{
;
}
char *name1=new char[i+1];
int j;
for(j=0;j<i;j++)
{
name1[j]=a[j];
}
name1[i] = '\0'; //添加'\0'
cout << "name1 = " << name1 <<endl;
int k;
for(k=0;a[i+k+1]!='\0';k++)//名的个数 //字符串是以'\0'结尾的,此处写错了
{
;
}
cout << "k =" << k <<endl;
char *name2=new char[k +1];
int m;
for(m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
name2[m+1] = '\0';
cout << "name2 = " << name2 <<endl;
name2[k] = '\0';
xing=name1;
ming=name2;
}
void Name::Display()
{
cout<<"xing:"<<xing
<<"ming:"<<ming
<<endl;
}
int main()
{
Name na;
na.Xm("lu ge");
na.Display();
return 0;
}
class Name
{
public:
void Xm(char *a); // 缺少返回类型
void Display(); // 缺少返回类型
protected:
char *xing;
char *ming;
};
void Name::Xm(char *a)
{
int i = 0; // 定义为函数内有效就可以了
int k = 0;
for(i=0;a[i]!=' ';i++)//姓的个数
{
;
}
char *name1=new char[i+1]; // i未定义,上一个for循环中定义的i只在那个循环内有效
for(int j=0;j<i;j++)
{
name1[j]=a[j];
}
for(k=0;a[i]!='/0';k++)//名的个数
{
;
}
char *name2=new char[k]; // k未定义,上一个for循环中定义的k只在那个循环内有效
for(int m=0;m<k;m++)
{
name2[m]=a[i+m+1];
}
xing=name1;
ming=name2;
}
void Name::Display()
{
cout<<"xing:"<<xing
<<"ming:"<<ming
<<endl;
}