求助:字符串输出问题!找不出问题!

sbysby00 2013-04-17 03:37:08
求助 这么为什么我输入字符串后 无法显示 直接就终止了

#include<iostream>
#include<conio.h>

using namespace std;
class String
{
private:
char *str;
int size;
void Getnext(String t,int next[]);
public:
void Creat();
void Display();
};
void String::Creat()
{
char *ch1="*****";
cout<<"\nInput string:";
cin>>ch1;
size=strlen(ch1);
str=new char[size];
strcpy(str,ch1);
}


void String::Display()
{
cout<<"\n The string is: "<<str;cout<<endl;
}
int main()
{
String s;
s.Creat();
s.Display();

return 0;
}
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_w_m 2013-04-17
  • 打赏
  • 举报
回复
错了不能改,重发一个

void String::Creat()
{
  char chtmp[10240] = {0};//足够大的临时空间
  cout << "\nInput string:";
  cin>>chtmp;
  size = strlen(chtmp);
  str = new char[size+1];
  strcpy(str,chtmp);
}
h_w_m 2013-04-17
  • 打赏
  • 举报
回复

void String::Creat()
{
  char chtmp[10240] = {0};//足够大的临时空间
  cout << "\nInput string:";
  cin>>chtmp;
  size = strlen(ch1);
  str = new char[size+1];
  strcpy(str,ch1);
}
sbysby00 2013-04-17
  • 打赏
  • 举报
回复
谢谢!
引用 5 楼 starytx 的回复:
引用 2 楼 sbysby00 的回复:我动态开辟空间啊,想自由输入字符串,char *ch1="*****";是为了对字符指针初始化。要怎么改可以自由输入呢? cout << "请输入字符串最大长度:"; cin >> nLen; char *ch1 = new char[nLen+1]; memset(ch1 ,0 ,nlen+1); // 初始化 cou……
starytx 2013-04-17
  • 打赏
  • 举报
回复
引用 2 楼 sbysby00 的回复:
我动态开辟空间啊,想自由输入字符串,char *ch1="*****";是为了对字符指针初始化。要怎么改可以自由输入呢?
cout << "请输入字符串最大长度:"; cin >> nLen; char *ch1 = new char[nLen+1]; memset(ch1 ,0 ,nlen+1); // 初始化 cout << "输入字符串内容:" cin >> ch1;
引用 3 楼 sbysby00 的回复:
后面的cin>>ch1, ch1重新赋值了啊
你的ch1是一个指向常量字符串"*****"的指针,不可以重新赋值的!常量可以改变吗?
hwb506 2013-04-17
  • 打赏
  • 举报
回复
你用字符串不就可以了吗 string
sbysby00 2013-04-17
  • 打赏
  • 举报
回复
后面的cin>>ch1, ch1重新赋值了啊
sbysby00 2013-04-17
  • 打赏
  • 举报
回复
我动态开辟空间啊,想自由输入字符串,char *ch1="*****";是为了对字符指针初始化。要怎么改可以自由输入呢?
starytx 2013-04-17
  • 打赏
  • 举报
回复
char *ch1="*****"; 改成 char []ch1 = "*****"; // 注意只能输入最多5个字符,你那个是个常量字符串指针,不可以往里写入东西 同时str=new char[size+1]; //要预留结束符的位置 ps:你的类没有释放str,有内存泄露

64,388

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧