使用strcat连接字符串

2023-05-16

#include <iostream>
using namespace std;


int main(int argc, char* argv[])
{	
	char* str1 = "hello";
	char* str2 = "china";
	char* str3 = NULL;
	str3 = new char[strlen(str1) + strlen(str2) + 1];
	str3[0] = '\n';
	strcat(str3,str1);
	strcat(str3,str2);

	cout<<str3<<endl;
	return 0;
}
上面的程序代码有什么问题?输出什么?

答案:str3指向的堆内存没有初始化,不含有字符串结束符号。输出随机值

strcat函数 strcat(char* dest, const char* src)
把字符串src加到dest字符串之后,dest字符串结束的位置就是新连接的src的位置。
<pre name="code" class="cpp">str3 = new char[strlen(str1) + strlen(str2) + 1];
new申请的内存并没有被初始化,内存中的值都是随机数。调用strcat不能把str1的内容复制呆内存块当中,并且会导致数组越界。

  
应该把  str3[0] = '\0';

#include <iostream>
using namespace std;




int main(int argc, char* argv[])
{<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>char* str1 = "hello";
<span style="white-space:pre">	</span>char* str2 = "china";
<span style="white-space:pre">	</span>char* str3 = NULL;
<span style="white-space:pre">	</span>str3 = new char[strlen(str1) + strlen(str2) + 1];
<span style="white-space:pre">	</span>str3[0] = '\0';
<span style="white-space:pre">	</span>strcat(str3,str1);
<span style="white-space:pre">	</span>strcat(str3,str2);


<span style="white-space:pre">	</span>cout<<str3<<endl;
<span style="white-space:pre">	</span>return 0;
}

hellochina



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用strcat连接字符串 的相关文章

随机推荐

  • OpenWrt OpenMPTCProuter feed

    echo 34 src git OpenMPTCProuter https github com Ysurac openmptcprouter feeds git 34 gt gt feeds conf default echo 34 sr
  • openwrt路由器接华为E3372(E8372)网卡实现4G转有线和WIFI

    Hilink 在openwrt系统中安装kmod usb net rndis kmod usb net kmod usb2 usb modeswitch kmod usb net cdc ether 安装完成后 xff0c 把E3372 x
  • windows 10 内存居高不下,实际没开多少进程

    windows 10 内存居高不下 xff0c 实际没开多少进程 关闭快速启动 就好了
  • opkg list 报错

    opkg list Collected errors opkg conf load Could not lock var lock opkg lock Resource temporarily unavail echo 34 nameser
  • openwrt opkg install 强制替换安装

    查询 opkg list installed grep XXX opkg install XXX ipk force downgrade
  • stm32 硬件spi半双工三线的一些研究心得

    a7105可以使用四线spi 或者3线spi 但是之前都是使用3线的软件模拟的三线spi的 xff0c 所以不想改其它代码了 xff0c 就想可以提高一个spi的读写速度 xff0c 原来软件方式的读写速度 xff0c 在48Mhz的03x
  • Openwrt tftp刷机

    第一次写论坛 xff0c 今天早上才拿到路由器 开始学习openwrt 之前学过嵌入式Linux arm 移植 xff0c 开始正题 xff1a 拿到开发板后 xff0c 就开始烧写自己编译的 bin文件 xff0c 在烧写的过程中出现了问
  • openwrt ipk 安装 luci 界面

    试试看可行不 慢慢更新 opkg update 更新 opkg list grep svn
  • OpenWRT php 安装

    一 安装PHP opkg update opkg install php5 php5 mod apc opkg install php5 mod gd php5 mod session opkg install php5 mod pdo m
  • ESP8266 固件擦除

    折腾了两天 真是醉了 首先确认安装 python python2是否安装 python2 version sudo apt isntall python pip 安装pip和他的许多其他依赖 pip 9 0 1 from usr lib p
  • 第二次实验报告:使用Packet Tracer分析应用层协议

    姓名 xff1a 刘钰学号 xff1a 201821121036班级 xff1a 计算1812 1 实验目的 熟练使用Packet Tracer工具 分析抓到的应用层协议数据包 xff0c 深入理解应用层协议 xff0c 包括语法 语义 时
  • C++的类与C语言结构体比较

    C 43 43 的类与C语言结构体比较 C 43 43 的类与C语言结构体比较 一 结构体 xff0c 类的介绍二 结构体和类的具体区别1 C语言对结构体数组初始化 必须要在定义时初始化 xff1a 2 C 43 43 的类的初始化 构造函
  • CPP-网络/通信:经典HTTP协议详解

    2008 11 03 09 11 by Hundre 266688 阅读 23 评论 收藏 编辑 转自 xff1a http blog csdn net gueter archive 2007 03 08 1524447 aspx Auth
  • 串口编程3:使用串口读取GPS信息

    关于GPS的使用 xff0c 参考 本文主要参考的博客 xff0c 在此表示感谢 xff01 xff01 xff01 主函数 主函数gps main c xff0c 这里便涉及到了串口的打开 xff0c 读操作 xff0c 以及调用了串口设
  • 基于单片机语音智能导盲仪仿真设计-毕设课设资料

    资料下载地址 1110 xff08 百度网盘 xff09 xff1a 点击下载 包含超声波传感器检测障碍物 xff0c 温度传感器检测当前温度 可以通过按键设置距离报警范围 xff0c 报警装置通过声光报警 包含的电路有电源电路 显示电路
  • 宏定义详解

    宏定义有无参数宏定义和带参数宏定义两种 无参数的宏定义的一般形式为 define 标识符 字符序列 其中 define之后的标识符称为宏定义名 简称宏名 xff0c 要求宏名与字符序列之间用空格符分隔 这种宏定义要求编译预处理程序将源程序中
  • 一个无线鼠标的HID Report Desc

    HID设备是USB规范定义的设备类型之一 xff0c 其分类号为0x03 关于USB设备类型定义 xff0c 可参见本站 xff1a USB设备类型定义 USB中文网 HID设备除了用于专门的输入输出设备外 xff0c 有时也与其它的设备类
  • 虚拟机的三种网络连接方式

    1 NAT模式 xff1a 用于共享主机的IP地址 安装完VMware后在本地网络连接里会虚拟出两块网卡 xff08 VMnet1 xff0c VMnet8 xff09 如果选择的是NAT模式 xff0c 则会使用VMnet8这块网卡来和虚
  • 全局变量不能放在头文件当中

    看网上各种说法说 变量的声明和变量的定义 xff0c 但是还是没有讲清楚什么是声明什么是定义 xff0c 如果说定义要分配内存 xff0c 声明不分配 xff0c 这个谁都知道 刚我在VS2012中测试 xff1b 按理说 int i xf
  • 使用strcat连接字符串

    include lt iostream gt using namespace std int main int argc char argv char str1 61 34 hello 34 char str2 61 34 china 34