社区
C++ 语言
帖子详情
关于strcpy
SendDlgItem
2009-03-11 09:45:34
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
{
}
return address ; // 2分
}
请问strcpy源码中为什么要引入一个新的char*变量(address)
...全文
144
10
打赏
收藏
关于strcpy
char *strcpy(char *strDest, const char *strSrc); { assert((strDest!=NULL) && (strSrc !=NULL)); char *address = strDest; while( (*strDest++ = * strSrc++) != ‘\0’ ) { } return address ; // 2分 } 请问strcpy源码中为什么要引入一个新的char*变量(address)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小G
2009-03-11
打赏
举报
回复
[Quote=引用 5 楼 flameearth 的回复:]
用来实现链式操作
char *str = strcpy( dst, ss );
[/Quote]
5楼正解
C底层库函数挺多这样子的技巧
比如:
extern void *memcpy(void *dest, void *src, unsigned int count);
zhangchaokun
2009-03-11
打赏
举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
请问strcpy源码中为什么要引入一个新的char*变量(address)
操作习惯问题,传入来的指针最好别改变它,而是多声明一个指针来接收他,除非函数本身有改变该指针的需求.
[/Quote]
正解
大爷想要时光机
2009-03-11
打赏
举报
回复
相当于一个临时变量,保存首地址好返回给你。。。
猫已经找不回了
2009-03-11
打赏
举报
回复
请问strcpy源码中为什么要引入一个新的char*变量(address)
操作习惯问题,传入来的指针最好别改变它,而是多声明一个指针来接收他,除非函数本身有改变该指针的需求.
grellen
2009-03-11
打赏
举报
回复
保存初始地址,即目标串的首地址
flameearth
2009-03-11
打赏
举报
回复
用来实现链式操作
char *str = strcpy( dst, ss );
valuesun
2009-03-11
打赏
举报
回复
add存的是起始地址,最后返回的要是字符串头。str是复制条件变量。
yangch_nhcmo
2009-03-11
打赏
举报
回复
因为strDest在运算中有执行++的动作.其值不指向其首地址.引入address是为了返回其strDest的首地址
bitxinhai
2009-03-11
打赏
举报
回复
记录原来的地址,因为*strDest++
会改变指针strDest的指针值
chin_chen
2009-03-11
打赏
举报
回复
如果没有char *address = strDes;
*strDes ++ 将指针指向的位置自加,会改变strDes的值。如果return strDes将返回strDes的最后一个字符,并没有返回整个字符串。
address 相当于一个中间变量。无论strDes怎么变化,address始终为整个字符串(原来strDes地址的起始位置)。
strncpy,
strcpy
,sprintf,snprintf
本文主要介绍了C语言中的多个字符串处理函数,包括
strcpy
、strncpy、memcpy、memset、snprintf、sprintf、strcat和strncat。详细阐述了各函数的原型、参数和返回值,如
strcpy
复制字符串包括终止符,strncpy复制指定数量字符等。
strcpy
本文深入探讨了C标准库中的字符串复制函数实现,包括使用memcpy进行底层内存拷贝的细节,以及一种更安全的字符串复制函数重写示例,确保在源和目标指针不为空的情况下正确复制字符串。
strcpy
、wcscpy与_tcscpy关系
strcpy
_s与
strcpy
比较
本文探讨了C++中
strcpy
_s与
strcpy
的区别,主要集中在安全性方面。
strcpy
_s在遇到缓冲区溢出时会抛出异常,而
strcpy
可能导致未定义行为,影响程序的其他部分。使用增强安全的CRT函数可以提高代码的健壮性,及时发现潜在错误。
strcpy
_s与
strcpy
本文详细对比了C++中字符串复制函数
strcpy
_s和
strcpy
的安全性和使用场景,强调了在使用时应优先选择
strcpy
_s以避免缓冲区溢出等安全隐患。同时介绍了
strcpy
_s函数的参数使用方法及在调试版本中如何防止意外填充目标缓冲区的技巧。
关于
strcpy
()
本文围绕C/C++中的
strcpy
函数展开,给出了
strcpy
函数的实现代码,并通过test1和test2两个测试函数,分析了
strcpy
函数在使用时可能出现的字符越界以及因未正确处理结束符导致的潜在问题,提醒开发者注意。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章