大家好,感谢邀请,今天来为大家分享一下写一个strcpy函数的问题,以及和*p在c语言中是什么意思的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
strcpy函数不安全是什么意思
vs觉得strcpy这函数不安全,所以搞了个strcpy_s(s的意思是safe)你把所有的strcpy改为strcpy_s,或者在VS里面关闭SDL,或者按照提示关闭。
strcpy可以对字符指针操作吗
可以的,字符串,字符数组,字符指针都可以使用strcpy函数
编写程序,将字符串str1复制到字符串str2中,不能用strcpy函数,并显示出来
#include<stdio.h>char*strpy(char*str,char*dest)//字符串复制{char*ch=dest;while(*str!='\0')*ch++=*str++;*ch='\0';returndest;}intmain(){charch[20]="123456789";charstr[20]={0};strpy(ch,str);printf("%s\n",str);}
stcpy函数的作用是
我们知道,strcpy是依据/0作为结束判断的,如果to的空间不够,则会引起bufferoverflow。strcpy常规的实现代码如下(来自OpenBSD3.9):
char*
strcpy(char*to,constchar*from)
{
char*save=to;
for(;(*to=*from)!='/0';++from,++to);
return(save);
}
但通常,我们的from都来源于用户的输入,很可能是非常大的一个字符串,因此strcpy不够安全。好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。
但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!