[软件设计/软件工程] 如何复制或连接两个字符*

[复制链接]
发表于 2022-5-3 12:12:09
问题
如何将 char* 连接或复制在一起?
  1. char* totalLine;

  2. const char* line1 = "hello";
  3. const char* line2 = "world";

  4. strcpy(totalLine,line1);
  5. strcat(totalLine,line2);
复制代码

此代码产生错误!

分段故障

我想我需要为toline分配内存?

另一个问题是,下面是复制内存还是复制数据?
  1. char* totalLine;

  2. const char* line1 = "hello";

  3. totalLine = line1;
复制代码

提前致谢! :)

回答
是的,你猜对了。 totalLine 是一个未初始化的指针,因此这些 strcpy 调用试图写入内存中的某个随机位置。

幸运的是,当您标记 C++ 时,您无需为此烦恼。只需这样做:
  1. #include <string>

  2. std::string line1 = "hello";
  3. std::string line2 = "world";

  4. std::string totalLine = line1 + line2;
复制代码

不需要内存管理。

我认为您的意思是“是复制了底层字符串,还是只是一个指针?”。如果是这样,请使用指针。





上一篇:如何从列表中的整数中删除重复的数字
下一篇:JavaScript 中的乘法表

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表