我创建了一个String类,它有两个私有成员int长度和一个字符指针。 有两个构造函数初始化这些成员。 我的问题为什么s1.print()不能在我的代码中工作?
#include <iostream>
#include <string.h>
using namespace std;
class String {
int length;
char *ptr;
public:
String(int N, char s[]) {
ptr = new char[N];
strcpy(s, ptr);
}
String(int N) {
ptr = new char[N];
}
String concat(String s2) {
String result(s2.length+length, strcat(ptr, s2.ptr));
}
void print(void)
{
cout<<ptr<<endl;
}
};
int main()
{
char temp[50];
cin >> temp;
String s1(strlen(temp)+1, temp);
//String s2(strlen(temp)+1, temp);
s1.print();
//s1.concat(s2);
//s1.print();
return 0;
}
答案 0 :(得分:0)
为了打印char *,您需要将其转换为字符串而不是打印。 另一件事我建议您的数组大小为N + 1并在ptr [N] ='\ 0'
处添加NULL终止