CPP strcat函数使用
strcat函数原型
char * strcat ( char * destination, const char * source );
strcat常见写法
// main.cpp
// 字符数组strcat()函数的使用
// char * strcat ( char * destination, const char * source );
// 来源的头文件 #include <string.h> 或者#include <cstring>
// 功能:将字符串 source连接到字符串 destination的后面,并把destination地址返回。
// 常见问题:strcat()函数常见的错误就是数组越界,即两个字符串连接后,长度超过第一个字符串数组定义的长度,导致越界
// Created by mac on 2019/4/5.
// Copyright © 2019年 mac. All rights reserved.
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, const char * argv[]) {
//几种常见的写法:
// 写法一:直接不定义字符数组,定义两个字符指针。编译成功,运行出错。
// char *p="Hell";
// char *q="o,World!";
// strcat(p,q);
// cout<<p<<endl;
// 写法二:定义了字符数组,但是不指定字符数组的长度, 程序的编译运行都没有问题。
// char p[]="Hell";
// char *q="o,World!";
// strcat(p, q);
// cout<<p<<endl;
//写法三:定义字符数组的时候指定字符数组的大小,程序的编译运行都没有产生问题
// char p[30]="Hell";
// char *q="o,World!";
// strcat(p, q);
// cout<<p<<endl;
//写法四:定义没有指定长度的字符数组和字符串常量,编译运行都没有问题
// char p[]="Hell";
// strcat(p,"o,World");
// cout<<p<<endl;
//写法五:直接连接两个字符串常量 编译成功,运行出错。
//cout<<strcat("Hell", "o,World")<<endl;
return 0;
}
运行成功输出
运行失败输出
Tips
- 字符串连接的时候主要看destination中的空间是否充足。
参考文献
- https://blog.csdn.net/candyliuxj/article/details/6786718
- http://www.cplusplus.com/reference/cstring/strcat/
CPP strcat函数使用的更多相关文章
- C语言strcat()函数:连接字符串
头文件:#include <string.h> strcat() 函数用来连接字符串,其原型为: char *strcat(char *dest, const char *src); ...
- strcat函数的使用需要注意的问题
曾被这个函数困扰了好久,然后各种假设,验证:但是最后却发现这个函数并没有什么好讲的,原来的过错一切都源于忽略了“*dst去掉\0,然后加上*src,最后返回*dst”这句话的真正含义:给*dst分配的 ...
- strcat()函数常见问题
strcat(char *_Destination,const char *_Source)函数的功能是将后一个字符串粘贴到前一个字符串的末尾 原型 char *strcat(char *_Desti ...
- strcat函数造成的段错误(Segmentation fault)
转自:http://book.51cto.com/art/201311/419441.htm 3.21 strcat函数造成的段错误 代码示例 int main() { char dest[7]=& ...
- 【C语言】模拟实现库函数strcat函数
//模拟实现库函数strcat函数 #include <stdio.h> #include <string.h> #include <assert.h> char ...
- strcat函数的坑点
我们先看下面这样一段代码: #include <iostream> #include <stdlib.h> using namespace std; int main() { ...
- 编写一个程序实现strcat函数的功能
写自己的strcat函数------→mycat #include <stdio.h> #include <string.h> #define N 5 char *mycat( ...
- C语言中strcpy,strcmp,strlen,strcat函数原型
//strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, const char ...
- 由strcat函数引发的C语言中数组和指针问题的思考
问题一 首先,来看一下下面这段代码: #include <stdio.h> #include <string.h> int main() { char *str = " ...
随机推荐
- 填报表导出excel非可写单元格锁定问题
问题描述: 填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对 ...
- 修改spfile位置
虽然很多地方不建议这么做,可是有HA.oracle软件建在本地盘的情况下,如果spfile放在dbs下,会导致每次修改spfile都要去手动copy到备机上,这是很麻烦的一件事情,所以我把spflie ...
- 如何修改ionic中android程序的包名
默认ionic新建工程的时候指定的Android版本包名是:com.ionicframework.starter:这样固定死包名的话会导致一个问题,多个ionic工程无法正常安装到手机当中,后面安装的 ...
- SQL Server FOR XML PATH 和 STUFF函数的用法
FOR XML PATH ,其实它就是将查询结果集以XML形式展现,将多行的结果,展示在同一行. 下面我们来写一个例子: 假设我们有个工作流程表: CREATE TABLE [dbo].[Workfl ...
- 转:oracle:win7手工卸载oracle数据库11g
环境:oracle 11g,win7,64bit 问题:oracle不正常安装.重新安装等情况需要卸载软件,然而oracle11g取消了界面卸载,改为deinstall.bat文件执行卸载.具体关于d ...
- ARC下的block导致的循环引用问题解析
ARC下的block导致的循环引用问题解析 更详细细节请参考 http://blog.sina.com.cn/s/blog_8c87ba3b0101m599.html ARC下,copy到堆上的blo ...
- UIImagePickerController按钮的中文问题
UIImagePickerController按钮的中文问题 执行以下两步即可 1. 在targets中设置region为China 2. 在project中添加支持中文
- Oracle Order By 排序 非主键时 紊乱 重复 问题
Oracle的分页查询是没有进行任何排序操作的,Oracle是顺序的从数据块中读取符合条件的数据返回到客户端. 而Oracle的排序算法不具有稳定性,也就是说,对于排序键值相等的数据,这种算法完成排序 ...
- python-面向过程编程
面向过程: 核心是过程.过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式. 优点:复杂的问题流程化,进而简单化
- Windows删除指定时间之前指定后缀名的文件
时间判定标准:文件创建时间 实例:删除 D:\backup 目录下(包括子文件夹),7天前 “.bak”后缀名的文件及30天前后缀名为 “*.log” 的文件 批处理: @echo off echo ...