c++String 类问题
来源:百度知道 编辑:UC知道 时间:2024/09/24 03:39:57
源代码如下:
#include<iostream.h>
class String
{
public:
char *ch;
int length;
};
String Copy(char *chars)//复制字符串chars到刚一个类T的ch成员中,ch在复制之前进行空间申请;
{
String T;
int i;
char *c = chars;
for(i=0;chars;++i,++chars); //求chars的长度;
T.ch = new char[i];
for(i = 0;c;c++,i++) //进行复制;
{
T.ch[i] = c[i];
}
T.ch[i] = '\0';
T.length = i-1;
return T;
}
void ShowString(String&tt) //打印String类中的字符串数据;
{
for(int i=0;i<=tt.length;i++)
{
cout<<tt.ch[i];
}
cout<<endl;
cout<<"Length:"<<tt.length<<endl;
}
void main()
{
// cout<<"fdfas";
char* cc = "HAHA";
String TT;
TT = Copy(cc);
ShowString(TT);
}
无聊的时候玩String类出
#include<iostream.h>
class String
{
public:
char *ch;
int length;
};
String Copy(char *chars)//复制字符串chars到刚一个类T的ch成员中,ch在复制之前进行空间申请;
{
String T;
int i;
char *c = chars;
for(i=0;chars;++i,++chars); //求chars的长度;
T.ch = new char[i];
for(i = 0;c;c++,i++) //进行复制;
{
T.ch[i] = c[i];
}
T.ch[i] = '\0';
T.length = i-1;
return T;
}
void ShowString(String&tt) //打印String类中的字符串数据;
{
for(int i=0;i<=tt.length;i++)
{
cout<<tt.ch[i];
}
cout<<endl;
cout<<"Length:"<<tt.length<<endl;
}
void main()
{
// cout<<"fdfas";
char* cc = "HAHA";
String TT;
TT = Copy(cc);
ShowString(TT);
}
无聊的时候玩String类出
String Copy(char *chars)//复制字符串chars到刚一个类T的ch成员中,ch在复制之前进行空间申请;
{
String T;
int i;
char *c = chars;
for(i=0;chars;++i,++chars); //求chars的长度;这里进入了死循环
T.ch = new char[i];
for(i = 0;c;c++,i++) //进行复制;
{
T.ch[i] = c[i];
}
T.ch[i] = '\0';
T.length = i-1;
return T;
}
for(i=0;chars;++i,++chars); //求chars的长度;
这就有问题, 后面还没看
至于第一行为什么打印不出来, 因为你没 << endl; 或者 flush, 它就会等缓冲到一定程度再打印。 而你的程序在到这个程度之前已经没戏了