strcpy

原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include <string.h>
功能:把从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 <string.h>
在C++中,则存在于<cstring>头文件中。

功能

把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;     //为了实现链式操作,将目的地址返回
}

C语言中字符串常用函数--strcat,strcpy的更多相关文章

  1. PHP中 字符串 常用函数

    //strpos    查找字符串中是否含有字符 $str='abcde'; $char='a':   if(strpos($str,$char) !==false){    echo '含有',$c ...

  2. C语言中的常用函数_持续更新

    isspace函数: 背景:之前遇到scanf()输入时会把换行符留在输入队列的情况,如果下次要用到getchar(),但是会导致其先返回这个我们不需要的换行符:从而导致不希望出现的行为: 说明:检查 ...

  3. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  4. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数

    怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那 ...

  5. oracle中的常用函数、字符串函数、数值类型函数、日期函数,聚合函数。

    一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2."||"符 ...

  6. C 字符/字符串常用函数

    string.h中常用函数 char * strchr(char * str ,char ch); 从字符串str中查找首次出现字符ch的位置,若存在返回查找后的地址,若不存在则返回NULL void ...

  7. C语言中字符串详解

    C语言中字符串详解 字符串时是C语言中非常重要的部分,我们从字符串的性质和字符串的创建.程序中字符串的输入输出和字符串的操作来对字符串进行详细的解析. 什么是字符串? C语言本身没有内置的字符串类型, ...

  8. C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

    本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...

  9. C语言中关于scanf函数的用法

    scanf()函数的控制串 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化 ...

随机推荐

  1. UMAIL安装教程

    UMAIL安装教程 一.UMAIL虚拟机的创建与安装 首先在VM中选择新建虚拟机 选择下一步 选择稍后安装操作系统 选择Linux系统 版本CentOS 7 64位 选择名称与安装位置 选择下一步 选 ...

  2. 搭建 RabbitMQ Server 高可用集群

    阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 ...

  3. 数据挖掘_requests模块的post方法

    前面已经跟大家讲了requests模块的get方法,这一篇文章我们要介绍的是requests模块中的另一个比较常用的方法,post方法 post方法的形式相比于get要复杂一些,这时因为post在提交 ...

  4. Centos 6.5 安装 rar

    wget http://www.rarsoft.com/rar/rarlinux-x64-5.4.0.tar.gz tar -zxvf rarlinux-x64-5.4.0.tar.gz cd rar ...

  5. Zookeeper和Chubby【分布式协调系统】

    前言(对于协调系统来说其客户端往往是分布式集群) 大规模分布式系统需要解决各种类型的协调需求: 当集群中有新的进程或服务器加入时,如何探测到它的加入?如何能够自动获取配置参数? 当配置信息被某个进程或 ...

  6. 分享一个二维码图片识别控制台程序Demo

    怎么用NuGet和配置log4net就不介绍了,直接上代码(QRDecodeDemo.zip). (Visual Studio 2015 下的项目,用的.NET Framework 4.5.2) 吐槽 ...

  7. linux下的静态库与动态库详解

    静态库 先说说我们为什么需要库? 当有些代码我们大量会在程序中使用比如(scanf,printf等)这些函数我们需要在程序中频繁使用,于是我们就把这些代码编译为库文件,在需要使用时我们直接链接即可. ...

  8. Python3 编程第一步

    现在,我们能使用Python完成比 2+2 更复杂的工作.在下例里,我们能写出一个初步的斐波纳契数列如下: >>> # Fibonacci series: 斐波纳契数列 ... # ...

  9. Spring Boot+maven打war包

    存在一个坑: 官网文档 指出以下前3步做法,但是这样只可以打出可运行的jar包,要打出war包还要在文档后面的链接跳到另一个页面,才能找到第四步的做法,也就是最终能够打出war包,可能有些朋友有些粗心 ...

  10. Ubuntu 16.04 + ROS Kinetic 机器人操作系统学习镜像分享与使用安装说明

    Ubuntu 16.04 + ROS Kinetic 镜像分享与使用安装说明 内容概要:1 网盘文件介绍  2 镜像制作  3 系统使用与安装 ---- 祝ROS爱好者和开发者新年快乐:-) ---- ...