C语言strcpy在类中的使用问题

cyxcw1 2011-03-15 08:15:02
创建了一个类,然后类中的私有成员全是char* 类型,然后类的构造函数是初始化这些成员,功能函数提供修改这些成员的功能.

由于C语言的strcpy不经常使用,以前依赖于string,现在类中不能增加string的成员..现在在修改的时候遇到困难,比如要修改的char数组长度大于原来的char数组,应该不能直接strcpy的吧,应该怎么做才行?长度小于呢?

PS:char*成员比如是一个姓名,然后要修改成另外一个姓名...

谢谢各位大大帮我解答
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
辰岡墨竹 2011-03-15
  • 打赏
  • 举报
回复
这样就跟Java里一样,字符串常量是不能修改的,改字符串其实就是销毁然后重新分配。
RLib 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cyxcw1 的回复:]
额看了三楼的知道了 呵呵 还能用DELETE 3Q
[/Quote]

内存池啊
cyxcw1 2011-03-15
  • 打赏
  • 举报
回复
额看了三楼的知道了 呵呵 还能用DELETE 3Q
me_abo 2011-03-15
  • 打赏
  • 举报
回复
int len;//len为修改后的长度
if(ch!=0)
delete []ch;
char* ch=new ch[len+1];
memset(ch,0,len+1);
strcpy_s(ch,len+1,charneed);//charneed 为新的名字。
迷失丶心 2011-03-15
  • 打赏
  • 举报
回复
抱歉,错了,上面 (新姓名长度)要+1,用于存放'\0'
迷失丶心 2011-03-15
  • 打赏
  • 举报
回复
假设 char * name 为旧姓名;(非 常量字符串)
delete name;
name = new char[(新姓名长度)]
再用strcpy

64,649

社区成员

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

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