zoukankan      html  css  js  c++  java
  • 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大。

     

  • 相关阅读:
    element ui 表单清空
    element ui 覆盖样式 方法
    element ui 修改表单值 提交无效
    element ui 抽屉里的表单输入框无法修改值
    element ui 抽屉首次显示 闪烁
    css 左侧高度 跟随右侧内容高度 自适应
    PICNUF框架
    elementui 抽屉组件标题 出现黑色边框
    vue 子组件跨多层调用父组件中方法
    vue 编辑table 数据 未点击提交,table里的数据就发生了改变(深拷贝处理)
  • 原文地址:https://www.cnblogs.com/yedushusheng/p/5523989.html
Copyright © 2011-2022 走看看