strcpy原型声明:extern char *strcpy(char* dest, const char *src);

头文件:#include

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间

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

返回指向dest的指针。

函数实现:

复制代码 代码如下:

/**********************

* C语言标准库函数strcpy的一种典型的工业级的最简实现

* 返回值:目标串的地址。

* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。

* 参数:

* strDestination 目标串

* strSource 源串

***********************/

char *strcpy(char *strDestination,const char *strSource)

{

assert(strDestination!=NULL && strSource!=NULL);

char *strD=strDestination;

while ((*strD++=*strSource++)!='\0');

return strDestination;

}

/*

GNU-C中的实现(节选):

*/

char* strcpy(char *d, const char *s)

{

char *r=d;

while((*d++=*s++));

return r;

}

/* while((*d++=*s++)); 的解释:两层括号是为了取赋值表达式的值,

而赋值表达式的值为左操作数,所以在复制NULL后,循环停止 */

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

用法#include

在C++中,则存在于头文件中。

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

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

返回指向dest的指针。

函数实现:

复制代码 代码如下:

//将源字符串加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;     //为了实现链式操作,将目的地址返回

}

时间: 2013-07-09

c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍相关推荐

  1. R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))

    R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...

  2. C语言中字符串常用函数--strcat,strcpy

    strcpy 原型声明:extern char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 功能:把从src ...

  3. c语言字母随机初始值,C语言的未初始化的数组的值为什么是随机的

    突然想起来前几天同学问我为什么没有初始化的数组的值是随机的,发现这个困惑自己也是存在的,所以自己总结的心得. 1. 首先,并不是所有未初始化的数组的值都是随机的.对于没有初始化的数组,分两种情况: ( ...

  4. python语言format是什么意思_Python代码中str.format()函数有什么功能呢?

    摘要: 下文讲述Python代码中str.format()函数的简介说明,如下所示: str.format()函数功能 用于将字符串格式化,然后输出 str.format()函数语法 通过{} 和:替 ...

  5. c语言把一个字符从指定文件中读取的函数,C语言中对文件最基本的读取和写入函数...

    C语言中对文件最基本的读取和写入函数 C语言read()函数:读文件函数(由已打开的文件读取数据)头文件: #include 定义函数: ssize_t read(int fd, void * buf ...

  6. 关于C语言中一些常用函数的说明

    1.I/O函数 (1)scanf函数: int scanf(const char *format-..); 从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的 ...

  7. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  8. python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...

    前面简单介绍了python基本运算,这里再来简单讲述一下Python字符串相关操作 1. 字符串表示方法 >>> "www.jb51.net" #字符串使用单引号 ...

  9. java 循环拼接字符串用分号隔开_Java 8中字符串拼接新姿势:StringJoiner

    在为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接一文中,我们介绍了几种Java中字符串拼接的方式,以及优缺点.其中还有一个重要的拼接方式我没有介绍,那就是Java 8中 ...

最新文章

  1. java对文本文件进行操作:读取、修改、添加、删除、重命名等
  2. php 删除文件时间,php删除文件后重建,文件创建时间(filectime)未变化怎么解决??...
  3. python内置函数教程_Python内置函数详解
  4. 注册表 ControlSet001、ControlSet002以及CurrentControlSet
  5. Kafka 设计架构原理详细解析(超详细图解)
  6. mysql delimiter的作用_MySQL数据库中delimiter的作用概述
  7. BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
  8. 小米全系865旗舰大降价,买就完事了!
  9. MVC保存二进制到数据库,并显示文件的方法(图片显示)
  10. PAT B1035 插入与归并 (25 分)
  11. 深入分析Linux自旋锁【转】
  12. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  13. 纪录片:美国中情局解密 CIA Declassified 2013
  14. Excel:一个Excel自动计算公式,一个Excel手动计算?多进程
  15. 国内外php主流开源cms汇总(2010年1月) .
  16. ibm imm挂载iso文件_IBM IMM调试方式
  17. BT Dongle设计介绍
  18. 重庆科技学院数理学院mysql的期末考试_数据库期末考试重庆科技学院A.doc
  19. PMBOK及PMP考试精要
  20. Oracle按时间分组查询

热门文章

  1. Maven的安装以及在Myeclipse上的配置——超详细
  2. mongoose更新数据,如果这条记录不存在,则直接变为新增
  3. 二叉树三种遍历方式的非递归实现
  4. 老生常谈session,cookie的区别,安全性
  5. Java sdk 调用淘宝开发平台
  6. 应用数学软件测试题,高等数学第六章定积分应用综合测试题
  7. Java四大函数式接口
  8. springboot+hbase 集成
  9. 铃铛计数问题 解题报告
  10. python闯关_Day012