C语言中字符串常用函数strcat与strcpy的用法介绍

所属分类: 软件编程 / C 语言 阅读数: 75
收藏 0 赞 0 分享
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语言来求最大连续子序列乘积的方法

这篇文章主要介绍了利用C语言来求最大连续子序列乘积的方法,基本的思路以外文中还附有相关ACM题目,需要的朋友可以参考下
收藏 0 赞 0 分享

用C语言判断一个二叉树是否为另一个的子结构

这篇文章主要介绍了用C语言判断一个二叉树是否为另一个的子结构,是数据结构学习当中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现的阶乘,排列和组合实例

这篇文章主要介绍了C语言实现的阶乘,排列和组合的方法,涉及C语言数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言查找数组里数字重复次数的方法

这篇文章主要介绍了C语言查找数组里数字重复次数的方法,涉及C语言针对数组的遍历与判断技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言简单实现计算字符个数的方法

这篇文章主要介绍了C语言简单实现计算字符个数的方法,涉及C语言针对字符串的简单遍历与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

c实现linux下的数据库备份

本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

C++获得文件状态信息的方法

这篇文章主要介绍了C++获得文件状态信息的方法,包括文件状态信息、文件所在磁盘盘符、文件创建时间、访问时间及修改日期等,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言按关键字搜索文件夹中文件的方法

这篇文章主要介绍了C语言按关键字搜索文件夹中文件的方法,涉及C语言文件操作及字符串查找的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言之字符串模糊查询方法的实现

本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现BMP转换JPG的方法

这篇文章主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多