1、strcpy的作用是把从src地址开始且含有'\0'结束符的字符串复制一份到以dest开始的地址空间。首先在最前面添加#include<string.h>头文件,strcpy函数需要依赖该库,然后写好main函数,下面是演示strcpy的详细用法:
2、演示里首先定义两个字符数组,然后strcpy的定义是“char *strcpy(char *dest, const char *src);”这里直接调用strcpy函数复制字符串,这样就将test字符串拷贝到table数组中,最后通过puts函数打印出table数组的字符串:
3、在linux下保存文件然后退出vim编辑器,通过gcc编译器编译,终端中输入“gcc strcpy.c -o strcpy.out”编译运行程序,最后执行指令“./strcpy.out”编译后的可执行文件,回车就能看到拷贝的字符串输出:
下面是 strcpy() 函数的声明:
char *strcpy(char *dest, const char *src)
参数:
1.dest -- 指向用于存储复制内容的目标数组。
2.src -- 要复制的字符串。
实例:
#include <stdio.h>
#include <string.h>
int main (){
char str1[]="Sample string";
char str2[40]; char str3[40];
strcpy (str2,str1);
strcpy (str3,"copy successful");
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
return 0;}
扩展资料:
需要说明的是:
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
函数原型char *strcpy(char *str1, const char *str2),传参2个字符数组指针,将str2指向地址的字符串复制到str1指向地址的字符串。
注意str1内存大小必须要大于等于str2(小于的话有的编译器可能不报错,但是还是越界了)。
另外注意str2必须是包含结束符号'\0'的完整字符串。
比如定义char str1[ ]="abcd";常量字符串“abcd”是5个字节“abcd\0”最后一位是结束符号,那么str2[ ]定义大小不能小于5。所以可以写:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[]="abcd",str2[5];
strcpy(str2,str1);
printf("%s\n",str2);
return 0;
}
这样就把str1的字符串复制到了str2。
又比如
#include<stdio.h>
#include<string.h>
int main()
{
char str1[5],str2[5];
str1[0]='a';str1[1]='b';str1[2]='c';str1[3]='d';
str1[4]=0;//这次不是在定义时赋的初值,所以最后1位要手动置0
//(结束符号'\0'的数值表示就是0)。
//如果不写这句,那么函数将无法知道str1的字符串长度,访问会越界。
strcpy(str2,str1);
printf("%s\n",str2);
return 0;
}
strcpy(a,b); 简单的理解就是a=b. 当然 字符串不能这样直接赋值, 而是用函数实现的。
比如 char a[10],b[10]="abcd";
strcpy(a,b);之后
a="abcd";