C语言标准库之strcat函数


2018-10-20
  C库函数strcat()函数的功能是实现字符串的拼接。其函数原型如下所示
   char *strcat(char *dest, const char *src)

1、参数说明

  •   dest:指向目标数组,该目标包含看一个C字符串,且足够容纳追加之后的字符串。
  •        src: 指向要追加的字符串。

2、返回值 

  该函数返回一个指向最终目标字符串dest的指针。

3、实例

 

#include <stdio.h>
#include <string.h>

int main ()
{
   char src[50], dest[50];

   strcpy(src,  "This is source");
   strcpy(dest, "This is destination");

   strcat(dest, src);

   printf("最终的目标字符串: |%s|", dest);
   
   return(0);
}

运行结果图:

 虽然,该程序是实现了字符串的拼接,但是此操作并不安全,因为再调用该函数时,仍然会在dest所指向的字符串进行拼接,并没有对其现有所剩余的空间进行检验,因此,对于凭借次数多的情况下,除非能够百分百确定能够存的下数据,否则进行相关校验是必要的,下面做一下测试,主要测试对于多次拼接之后的效果展示。

程序代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
    int i = 0;
    char src[50], dest[50];

    strcpy(src, "This is source");
    strcpy(dest, "This is destination");
    for (i = 0; i < 20; i++)
    {
        strcat(dest, src);
    }


    printf("最终的目标字符串: |%s|", dest);

    getchar();
    return(0);
}

  虽然在编译时,不会报什么错误,但是运行该程序时,则会出现程序崩溃的显示,如下图所示:

 4、总结

  通过上述简单的测试,可以发现,对函数的进行检验的重要性,当然,在该程序中,还存在其他问题,比如变量为初始化,数组未初始化等情况,但这些对于一个项目来说,可能往往能够决定其程序的运行结果是否正确。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM