strcat()与strcpy()用法

一、strcpy

(1)原型

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

(2)用法

                    #include函数

(3)功能

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

(4)说明

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

                    返回指向dest的指针。code

(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\n" ,strlen(strcpy(s1,s2)));

则输出结果是:4内存

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

二、strcat

(1)原型

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

(2)用法

                    #include <string.h>原型

(3)功能

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

(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;
}

三、易错点

(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大。

相关文章
相关标签/搜索