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

strcpy

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

头文件:#include <string.h>

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

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

返回指向dest的指针

函数实现:

  1. /**********************

  2.  

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

  3.  

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

  4.  

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

  5.  

     * 参数:

  6.  

     * strDestination 目标串

  7.  

     * strSource 源串

  8.  

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

  9.  

  10.  

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

  11.  

     {

  12.  

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

  13.  

      char *strD=strDestination;

  14.  

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

  15.  

      return strDestination;

  16.  

     }

  17.  

  18.  

     /*

  19.  

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

  20.  

     */

  21.  

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

  22.  

     {

  23.  

      char *r=d;

  24.  

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

  25.  

      return r;

  26.  

     }

  27.  

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

  28.  

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

strcat

原型

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

用法

#include <string.h>

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

功能

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

说明

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

返回指向dest的指针

函数实现:

  1. //将源字符串加const,表明其为输入参数

  2.  

    char *strcat(char *strDest, const char *strSrc)

  3.  

    {

  4.  

    // 后文return address,故不能放在assert断言之后声明address

  5.  

    char *address = strDest;

  6.  

    assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言

  7.  

    while(*strDest) //是while(*strDest!=’\0’)的简化形式

  8.  

    {

  9.  

    //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,

  10.  

    //那么strDest将指向‘\0‘的下一个位置。/所以要在循环体内++;因为要是*strDest最后指

  11.  

    //向该字符串的结束标志’\0’。

  12.  

    strDest++;

  13.  

    }

  14.  

  15.  

    while(*strDest++ = *strSrc++)

  16.  

    {

  17.  

    NULL; //该循环条件内可以用++,

  18.  

    } //此处可以加语句*strDest=’\0’;无必要

  19.  

    return address; //为了实现链式操作,将目的地址返回

  20.  

    }

    转自:https://blog.csdn.net/dlutbrucezhang/article/details/9284917

原文地址:https://www.cnblogs.com/qiumingcheng/p/11370310.html

时间: 2024-11-13 11:02:20

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

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

isspace函数: 背景:之前遇到scanf()输入时会把换行符留在输入队列的情况,如果下次要用到getchar(),但是会导致其先返回这个我们不需要的换行符:从而导致不希望出现的行为: 说明:检查参数c是否为空格字符,也就是判断是否为空格(' ').水平定位字符 ('\t').归位键('\r').换行('\n').垂直定位字符('\v')或翻页('\f')的情况.若参数c为空格字符,则返回TRUE,否则返回NULL(0). 注:位于ctype.h中,是宏定义,非真正函数: 例子: 1 int

C语言中字符串处理函数实现(部分)

int mystrlen(char *a)//求字符串长度 { int b=0; while(*a) { b++; a++; } return b; } char *mystrcpy(char *d,const char *stc)//复制字符串 { while (*stc) { *d=*stc; stc++; d++; } d='\0'; return &d[0]; } char itoh (int i)//十六进制数转字符串 { if (i>9) { return i-9+'A'; }

C语言之字符串处理函数

C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为puts(字符串组) 作用:将一个字符串输出到终端.如,char一个string,并赋予初值.调用puts(string);进行字符串的输出. 2.gets函数——输入字符串的函数 一般的形式:gets(字符数组) 作用:从终端输入一个字符串到字符数组,并且得到一个函数值成为字符数组的起始地址. ge

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

怎么样可以从一串字符中的某个指定位置的前或后截取指定个数的字符. 如:12345.6789,我要截取小数点前(或后)的3个字符.怎么样操作, 另外,怎么样从右边截取字符,就是和left()函数相反的那个功能. =find(".",a2)返回在数字中字符(小数点)的位置. 具体公式如下:字符(小数点)前三位=MID(A2,FIND(".",A2)-3,3) 字符(小数点)后三个=MID(A2,FIND(".",A2)+1,3) 字符(小数点)前面的

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

一.字符串的常用函数. --一.oracle 字符串常用函数 --1. concat 连接字符串的函数,只能连接[两个]字符串. 字符写在括号中,并用逗号隔开! --2.“||”符号可以连接多个字符串 直接用||将多个字符链接即可. --3. dual? dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录. select concat('lo','ve')from dual; select concat('o','k')from dual; sel

C库函数中字符串处理函数集合(转)

C库函数中字符串处理函数集合(转) C库函数中字符串处理函数集合 bcmp 原型:extern int bcmp(const void *s1, const void *s2, int n); 用法:#include <string.h> 功能:比较字符串s1和s2的前n个字节是否相等 说明:如果s1=s2或n=0则返回零,否则返回非零值.bcmp不检查NULL. bcopy 原型:extern void bcopy(const void *src, void *dest, int n); 用

C#比较字符串及字符串常用函数

C#比较字符串及字符串常用函数示例2007年08月26日 星期日 下午 02:29用C#比较字符串有多种方法,如: 1. string.Compare(x,y);2. string.Equals(x,y) ; 如果要不区分大小写进行比较,则对应为:string.Compare(x,y);string.Equals(x,y); 注:string.Compare比较结果的含义: 值含义 小于零x 小于 y. 或 x 为 空引用(在 Visual Basic 中为 Nothing). 零x 等于 y.

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

本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项.函数一般格式为:scanf("控制字符串",输入项列表):其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成.输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔.sca

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//