注册 登录
编程论坛 C++教室

求助:關于string

iwar 发布于 2007-05-06 17:51, 486 次点击

#include <iostream.h>

#include <math.h>

class CString

{

private:

char *p_str;

public:

CString(char *p_s)

{

p_str = new char [strlen(p_s)];

strcpy(p_str, p_s);

}

void print() { cout << p_str << endl; }

~CString() { delete [] p_str; }

};

void main()

{

char p[20];

CString *p_strPtr;

cout << “Enter a string: ”;

cin >> p;

CString s1();

p_strPtr = s1;

p_strPtr.print();

}
錯在哪啊???

4 回复
#2
aipb20072007-05-06 18:28

cout << “Enter a string: ”;输入了不能被识别的字符,估计是把输入成中文符号还是什么了,

CString s1();//有这个构造函数吗?带了一个参数吧!


p_strPtr = s1; //一个类指针,一个类对象,能赋值吗?况且是两个空对象。

p_strPtr.print();//先对指针解引用再调用成员函数。


呵呵,大概发现了这些!

ps:建议寻求代码问题帮助时把错误信息也贴上!


#3
yuyunliuhen2007-05-06 18:49
#include<string>
没有加这个吧
#4
幽灵嫖客2007-05-06 18:50
#include <iostream.h>
#include <math.h>
#include <cstring>//加个这个以使用strlen(),strcpy();
class CString
{
private:
char *p_str;
public:
CString(char *p_s)
{
p_str = new char [strlen(p_s)+1];
strcpy(p_str, p_s);
}
void print()
{
cout << p_str << endl;
}
~CString() { delete [] p_str; }
};
void main()
{
char p[20];
CString *p_strPtr;
cout << "Enter a string:" ; //双引号写错了
cin >> p;
CString s1(p); //忘写p了
p_strPtr= &s1;
p_strPtr->print();//指针应用->访问
}

不知道对不对!
#5
iwar2007-05-07 23:48
Thanks 各位大蝦
1