• strcat()与strcpy()用法


    1、strcpy

    (1)原型

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

    (2)用法

                        #include <cstring>

    (3)功能

                        把src所指由NULL结束的字符串复制到dest所指的数组中。

    (4)说明

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

                        返回指向dest的指针。

    (5)举例

    // strcpy.c
         
    #include
    #include
    
    main()
    {
        char *s="Golden Global View";
        char d[20];
           
        clrscr();
           
        strcpy(d,s);
        //这里只需要指定指针s的首地址和数组d的首地址即可,原因在于strcpy原型函数中定义的就是
        //把src所指由NULL结束的字符串复制到dest所指的数组中,因此我们不需要zhidingsrc的结束位置,只需要指定开始位置
        printf("%s",d);
    
        getchar();
        return 0;
    }

    说明:

    char s1[]="12345",*s2="1234";
     printf("%d
    " ,strlen(strcpy(s1,s2)));

    则输出结果是:4

    注意:strcpy是源文件覆盖目标区域,而不是替换前面的字符。

    2、strcat

    (1)原型

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

    (2)用法

                        #include <string.h>

    (3)功能

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

    (4)说明

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

                        返回指向dest的指针。

    (5)举例

     // strcat.c
         
    #include <syslib.h>
    #include <string.h>
    
    main()
    {
         char d[20]="Golden Global";
         char *s=" View";
           
         clrscr();
           
         strcat(d,s);
         printf("%s",d);
    
         getchar();
         return 0;
    }

    3、易错点

    (1)代码

    Char *a=”abcd”;
    Char b[5]=”abcd”;
    Strcat(a,b);
    
     
    
    Char a[]=”abcd”;
    Char b[5]=”abcd”;
    Strcat(a,b);
    
     
    
    Char a[5]=”abcd”;
    Char b[5]=”abcd”;
    Strcat(a,b);

    (2)分析

    以上这3种方法都不能实现连接2个字符串,因为连接a,b之后字符串是存放在a中的,而以上3种方法所分配的a的内存大小都是放不下这2个字符串的,所以就会报错。

    正确的方法如下:

    Char a[50]=”abcd”;  //确保a字符串分配的内存空间足够大
    Char b[5]=”abcd”;
    Strcat(a,b);
    
     
    
    Char a[50]=”abcd”; 
    Char *b=”abcd”; //对于第2个字符串的形式就没有太大的要求了
    Strcat(a,b);

    Strcpy(a,b)函数的注意点:同样的,a的内存空间必须比b大。

     

  • 相关阅读:
    Linux Apache服务(一)
    mysql基础
    linux面试题一
    linux shell(2)
    linux基础汇总2
    python列表生成式、生成器,迭代器与二分法
    python的函数
    python函数
    java 翁老师学习笔记-持续更
    责任链模式
  • 原文地址:https://www.cnblogs.com/yedushusheng/p/5523989.html
Copyright © 2020-2023  润新知