哦,原来如此,谢谢,洗了澡我去修改看看,
今天看了看昨天的这个题,发现了一相很大的错,今天改了改,但是还是不行,程序如下:
//============================================================================//
//===========程序功能:自己定义一个string类,并用它建立对象===================//
//===程序问题:将字符反顺序排序后,显示出的是知码,就算字符全部是字母也不行===//
//============================================================================//
#include "iostream.h"
#include "stdio.h"
//============================================================================//
//----------自定义字串类------------------------------------------------------//
class string
{
/******************************************************************************/
/**************私有数据********************************************************/
int length;
char *contents;
int who;
char *fan;
/******************************************************************************/
/**************公有数据********************************************************/
public:
/***构造函数***********************/
string(int id);
/***析构函数***********************/
~string();
/***用户界面************************/
int get_length(){return length;}; //返回字符串的长度
char *get_contents() {return contents;}; //返回字符串的内容的指针
char *get_fan()
{
char temp[length];
int j=0;
for(j=0; j<((length-1)/2);j++)
{
char t;
t=temp[j];
temp[j]=temp[length-j-2];
temp[length-j-2]=t;
}
fan=temp;
return fan;
}; //返回字符串的返排列的字符串的指针
int set_contents(int in_length,char *in_contents); //字符内容设置(从终端或其它地方接收参数)
int set_contents(char *in_contents); //字符内容设置(从终端或其它地方接收参数)
};
/***类函数(对数据进行操作)*******************/
string:: string(int id)
{
length=0;
contents=NULL;
fan=NULL;
who=id;
printf("字串对象%d已经初始化!\n\a",who);
};
string:: ~string()
{
printf("字串对象%d已经释放!\n\a",who);
};
int string::set_contents(int in_length,char *in_contents)
{
in_contents[in_length]='\0';
contents=in_contents;
fan=in_contents;
length=in_length;
return 1;
};
int string:: set_contents(char *in_contents)
{
contents=in_contents;
fan=in_contents;
int i=0;
char *p=in_contents;
while(*p++!='\n')i++;
length=i;
/******我想加个将输入的字符串按相反顺序排列,可排出来是乱码!*****************/
/* int j=0;
char temp[length];
for(j=0; j<((length-1)/2);j++)
{
char t;
t=temp[0];
temp[0]=temp[length-1];
temp[length]=t;
}
fan=temp; */
return 1;
};
//----------------------------------------------------------------------------//
//============================================================================//
//((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((//
//))主函数))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))//
main()
{
int i;
char *p;
string x(1),y(2);
x.set_contents("abc"); //大家好,这是自己编的类写出来的字串\n\n\a
y.set_contents("abc"); //大家好,这是自己编的类写出来的字串\n\n\a
i=x.get_length();
p=x.get_contents();
cout<<"x_length="<<i<<" x_contents="<<p<<"\n\a";
i=y.get_length();
p=y.get_contents();
cout<<"y_length="<<i<<" y_contents="<<p<<"\n\a";
p=x.get_fan();
cout<<"x.fan="<<p<<"\n";
p=y.get_fan();
cout<<"y.fan="<<p<<"\n";
getchar();
}
//((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((//
//))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))//