重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言中strcpy是一个C语言的标准库函数,是string copy(字符串复制)的缩写。strcpy函数的作用是把含有\0结束符的字符串复制到另一个地址空间,返回值的类型为char*。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的金塔网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%至20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
标准库的string类提供了三个成员函数来从一个string得到c类型的字符数组:
c_str( ),data( ),cpy( p,n).
这里简单说一下第三个,也就是问的这个cpy( p,n)
从string类型对象中至多复制n个字符指针p指向的空间中。
默认从首字符开始,但是也可以指定,开始的位置(记住从0开始)。返回真正从对象中复制的字符。
!!!用户要确保p指向的空间足够保存n个字符。
1、strcpy函数是复制字符串的,接受两个参数,一个是被复制字符串,另一个新字符串。具体的用法,首先打开编辑器新建一个c语言的程序文件,写入头文件和主函数:
2、接着定义两个数组a和b,程序经过strcpy函数处理,将b数组中的字符串复制到a数组中,最后打印出结果:
3、最后来看看效果。打开调试窗口,输入一句话,按下回车输出了这句话。以上就是C语言中strcpy的用法:
printf("%d\n",sizeof(s),strlen(s));
这句话错误,少了一个%d,sizeof也不应该分开写。
strcpy(s,t);
是将字符数组t里面的内容赋给字符数组s,
t[0]=X,t[1]=Y,t[2]=Z,t[3]="\0",当strcpy()函数执行完之后,字符数组s中的内容变为s[0]=X,s[1]=Y,s[2]=Z,s[3]="\0",s[4]=E,s[5]=F.
sizeof(s)的值是字符数组的大小即为20。
strlen(s)的值为“\0”之前的字符长度即为3.
printf("%c,%s\n",s[4],s);
当输出字符数组s时,编译器当碰到第一个“\0”后便停止输出,所以s的输出为:XYZ
strcpy是一个C语言的标准库函数,是string copy(字符串复制)的缩写。strcpy函数的作用是把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char*。
扩展资料:
C语言中,strcpy 函数不对数组边界进行检查,因而在使用 strcpy 函数时,应注意以下两点:
一、strcpy函数的缓冲区溢出问题
C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况。
二、strcpy函数的安全机制
在编写 strcpy 函数时,首先尽量使目的缓冲区长度足够长,另外要检测目的缓冲区和源缓冲区。如果目的缓冲区或源缓冲区是空,就要在异常处理中结束程序。如果源字符串比目的缓冲区长度不长,也要在异常处理中结束程序,以防止出现溢出情况。
参考资料:百度百科-strcpy
/*
原 串 : Windows Application
目标串 : Windows Application
请按任意键继续. . .
*/
#include stdio.h
#include stdlib.h
char *strcopy(char ds[], char ss[]) {
int i = 0;
while(ds[i] = ss[i]) ++i;
return ds;
}
int main() {
char s[] = "Windows Application";
char d[20];
printf("原 串 : %s\n",s);
printf("目标串 : %s\n",strcopy(d,s));
system("pause");
return 0;
}