将两个char类型链接。
char d[20]="GoldenGlobal"; char *s="View"; strcat(d,s);
结果放在d中
printf("%s",d);
输出 d 为 GoldenGlobalView (中间无空格)
d和s所指内存区域不可以重叠且d必须有足够的空间来容纳s的字符串。

返回指向d的指针。

C函数

编辑

原型

extern char *strcat(char *dest,char *src);

用法

#include <string.h>
在C++中,则存在于<cstring>头文件中。

功能

把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。

说明

src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的 指针。

举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// strcat.c
#include <syslib.h>
#include <string.h>
main()
{
     char  d[20] =  "GoldenGlobal" ;
     char * s =  "View" ;
     clrscr();
     strcat (d,s);
     printf ( "%s" ,d);
     getchar ();
     return  0;
}
// strcat.cpp
#include <iostream>
#include <cstring>
#include <cstdlib>
int  main()
{
     using  namespace  std;
     char  d[20] =  "GoldenGlobal" ;
     char * s =  "View" ;
     system ( "cls" );
     strcat (d,s);
     cout << d << endl;
     system ( "pause" );
     return  0;
}

程序执行结果为:
GoldenGlobalView
Strcat函数原型如下(以下代码为错误代码,想要通过char *指针修改字符串常量中的字符会导致Segment fault错误):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
  * 注意以下代码有问题:
  * 1. 指针strDest被修改了,实际在使用中并不会去调用返回值来重新获取strDest原来的值
  * 2. 代码注释不该这么写,函数注释只需要写使用方法,无需写实现过程[所以实现过程尽量保证正确]
  */
//将源字符串加const,表明其为输入参数
char strcat ( char * strDest ,  const  char * strSrc)
{
     //后文return address,故不能放在assert断言之后声明address
     char * address=strDest;
     assert ( (strDest!=NULL)&&(strSrc!=NULL) ); //对源地址和目的地址加非0断言
     while (*strDest) //是while(*strDest!=’\0’)的简化形式
     {
         //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
         //那么strDest将指向'\0'的下一个位置。/所以要在循环体内++;因为要使*strDest最后指
         //向该字符串的结束标志’\0’。
         strDest++;
     }
     while (*strDest++=*strSrc++)
     {
         NULL; //该循环条件内可以用++,
     } //此处可以加语句*strDest=’\0’;无必要
     return  address; //为了实现链式操作,将目的地址返回
}
   char  *mystrcat( char  *dst, const  char  *src)  //用自己的方式实现strcat函数功能
   5 {
   6      char  *p=dst;   //下面的操作会改变目的指针指向,先定义一个指针记录dst
   7      while (*dst!= '\0' )dst++;
   8      while (*src!= '\0' )*dst++=*src++;
   9     *dst= '\0' ;
  10  return  p;   //dst现在指向拼接后的最后一位字符,在这里返回dst,会出现错误
  11 }

C\C++中strcat()函数相关推荐

  1. matlab 中 strcat函数的用法

    先明白strcat函数的定义:定义 strcat 即 Strings Catenate,横向连接字符串. 语法 combinedStr= strcat(s1, s2, ..., sN) 描述 将数组 ...

  2. matlab中stract用法_matlab 中 strcat函数的用法

    展开全部 先明白strcat函数的定义: 定义 strcat 即 Strings Catenate,横向连接62616964757a686964616fe4b893e5b19e313333656436 ...

  3. Matlab中strcat函数使用

    目录 语法 说明 示例 串联两个字符向量 串联两个元胞数组 将两个元胞数组与标量元胞数组串联 串联两个字符串数组 语法 strcat函数是水平串联字符串,它的语法为: s = strcat(s1,.. ...

  4. C++ strcat 函数实现字符串拼接报错

    C++中,使用cstring 中 strcat 函数实现字符串拼接,报错: error C4996: 'strcat': This function or variable may be unsafe ...

  5. strcat函数解析

    一.认识strcat strcat函数又被称为是字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串. 使用方式如下: #include<string.h> #inclu ...

  6. 【C语言】strcat函数_字符串追加/连接

    前言:在C/C++的学习过程当中一定一定要多刷题,牛客网作为国内内容超级丰富的IT题库,尤其是它的C.C++,有从入门到大厂真题,而且大部分的考试题目也是从中抽取,还有很多面经,推荐大家去牛客网进行刷 ...

  7. C语言库函数中的Strcat函数

    一.Strcat函数的参数 Strcat函数所引用的头文件是<string.h> char*strcat(char* strDestination, const char* strSour ...

  8. C语言标准库之strcat函数

    2018-10-20 C库函数strcat()函数的功能是实现字符串的拼接.其函数原型如下所示 char *strcat(char *dest, const char *src) 1.参数说明 des ...

  9. strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

    strcpy函数: char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL ...

最新文章

  1. MongoDB sharding迁移那些事(一)
  2. how does tomcat access js - SAPUI5 Core Libraries
  3. MyBatis 快速入门
  4. 象棋子 设计模式_通过设计国际象棋游戏了解策略模式
  5. C语言编写简单朗读发音小工具!!
  6. CSS语法和CSS优先级
  7. 网络体系结构——ISO/OSI参考模型
  8. exception类型 java_程序员小白入门,Java如何选择异常类型?
  9. Opencv图像美颜滤镜
  10. ESD笔记(四)_击穿电压规律
  11. [CISCN2019 华东南赛区]Web11
  12. Don‘t Stop Pretraining: Adapt Language Models to Domains and Tasks
  13. Mac OS 10.12 - 如何能够像在Windows一样切换中英文输入法和大小写键?
  14. Java数据结构--Linkedlist
  15. cassandra 官方wiki
  16. 游戏3D建模师职业生涯规划,年薪百万学习路线
  17. 一行神奇的javascript代码
  18. zz业界大家谈之苹果必须死和世界上最奇葩的公司谷歌
  19. java 微信支付以及退款拿过来直接使用
  20. 【宇宙编码】厉害,生日那天:程序员小哥把天上的宇宙星云都送给女神了~

热门文章

  1. 【字符串处理函数】sprintf与snprintf
  2. Java数组转集合之Arrays.asList()用法
  3. ubuntu 20.04安装cuda
  4. Unity入门常见错误之碰撞检测方法无法触发
  5. NanoHTTPD----SimpleWebServer处理请求过程
  6. 中缀转后缀并分别计算
  7. ERROR: Failed building wheel for inplace-abn
  8. 《关于炒股有意思的几个“故事” 》
  9. Dynaper - Dynamic Wallpapers for mac(动态壁纸制作工具) v1.5激活版
  10. static变量有什么作用