c标准库函数 strcat
2024-09-27 03:24:46
函数原型:extern char *strcat(char *dest,char *src)
参数说明:dest为一个目的字符串的指针,即被连接的字符串(在前),src为一个源字符串的指针(在后)。
所在库名:#include
<string.h>
函数功能:把src所指字符串添加到dest结尾处实现字符串的连接,连接过程覆盖dest结尾处的'/0'。
返回说明:src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串返回指向dest的指针。
其它说明:暂时无。
实现代码:
char* strcat(char* dest,char* src){
if(src==NULL||dest==NULL) return;
char* temp=dest;
int i=;
int j=;
while (dest[i]!='\0')
i++;
while((dest[i++]=src[j++])!='\0')
;
return temp;
}
举例:
#include <string.h>
#include <stdio.h>
int main()
{
char str1[]="SKY2098,persist IN DOING AGAIN!";
char *str2="sky2098,must be honest!";
int n=;
char *strtemp;
strtemp=strncat(str1,str2,n); //将字符串str2中的前n个字符连接到str1的后面
printf("The string strtemp is: %s ", strtemp);
return ;
}
在VC++ 6.0 编译运行:
如果最初为dest分配空间不足时,比如我们这样:
char *dest="Hello,I
am sky2098,I liking programing!"; //这其实是一个常量字符串,dest任何一个值在编译阶段就固定了的,不能再改变,比如dest[0]='a' 出错。
连接字符串时就会发生异常:
通过char
*dest="Hello,I am sky2098,I liking programing!";我们只是为dest分配了strlen("Hello,I am
sky2098,I liking
programing!")+1;个字节空间,而连接是在dest的“/0”上覆盖,而此时只有一个“/0”的空间大小,所以无法实现连接功能。
最新文章
- Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
- 小型单文件NoSQL数据库SharpFileDB初步实现
- u-boot-2010.09移植(B)
- 利用mybatis-generator自动生成代码
- zTree简单使用和代码结构
- POJ 3277 City Horizon(扫描线+线段树)
- send,recv,sendto,recvfrom
- Light OJ 1021 - Painful Bases(状态压缩DP)
- mac xcode 快捷键
- Java深入 - MyBatis的经常用法
- easyUI中点击datagrid列标题排序
- SSRF漏洞总结
- 在VS2017下配置OpenGL
- 【一天一道LeetCode】#223. Rectangle Area
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-4配置NTP服务
- Python—json模块
- C# 实现身份验证之WCF篇(2)
- iOS开发之--UIImageView的animationImages动画
- python 实践项目
- Codeforces 832E Vasya and Shifts - 高斯消元