| 查看: 1407 | 回复: 2 | |||
[交流]
【讨论】strcat与strcpy的具体区别。。
|
|
看了很多解释,还是有点迷糊,希望高手解答下。 1. strcat()函数 不调用C++/C 的字符串库函数,请编写函数 strcat VC源码: char * __cdecl strcat (char * dst, const char * src) { char * cp = dst; while( *cp ) cp++; /* find end of dst */ while( *cp++ = *src++ ) ; /* Copy src to end of dst */ return( dst ); /* return dst */ } strcat()接受两个字符串参数。将第二个字符串的一份拷贝添加到第一个字符串的结尾,从而使第一个字符串成为一个新的组合字符串,第二个字符串不改变。 2. memset()函数 void *memset(void *s, char ch, unsigned n) 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 你刚分配的内存空间,或者是被你用过的内存空间里面的数据是不固定的 为了避免这些无用的数据给自己的程序带来影响,可以用memset把这些内存里面的数据置成某个数值 一般情况下是置0; /* MEMSET.C: This program uses memset to * set the first four bytes of buffer to "*". */ #include #include void main( void ) { char buffer[] = "This is a test of the memset function"; printf( "Before: %s\n", buffer ); memset( buffer, '*', 4 ); printf( "After: %s\n", buffer ); } 输出: Before: This is a test of the memset function After: **** is a test of the memset function 3. strcpy()函数 1.strcpy的实现代码 char*strcpy(char*strDest, const char*strSrc) { assert((strDest != NULL) && (strSrc != NULL)); char *address = strDest; while ((*strDest++ = *strSrc++) !='\0' '') continue; return address; } 2.memcpy的实现代码 void *memcpy(void *pvTo, const void *pvFrom, size_t size) { assert((pvTo != NULL) && (pvFrom != NULL)); // 使用断言 byte *pbTo = (byte *) pvTo; // 防止改变pvTo 的地址 byte *pbFrom = (byte *) pvFrom; // 防止改变pvFrom 的地址 while(size -- > 0 ) *pbTo ++ = *pbFrom ++ ; return pvTo; } strcpy只是复制字符串,但不限制复制的数量。很容易造成缓冲溢出。 strncpy要安全一些。 memcpy也可以用来在内存中复制数据,由于字符串是以零结尾的,所以对于在数据中包含零的数据只能用memcpy。 性能上它们不一定有多大差别。 |
» 猜你喜欢
极限拉扯,如何抉择
已经有10人回复
入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍
已经有6人回复
OpenAI又攻克数学难题了,离AI做有机合成还有多远?
已经有8人回复
课题组会帮你通过考核么?
已经有6人回复
售一区SCI文章T0P,我:8O.551.O54,科目全,可十急
已经有9人回复
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有10人回复
售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急
已经有8人回复
售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急
已经有9人回复
售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急
已经有7人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有10人回复
» 抢金币啦!回帖就可以得到:
2026年人文教育与社会发展国际会议(HESD 2026)
+1/852
诚征女友
+1/494
深圳|91年IT研发,期待一份不必伪装的长久陪伴。
+5/360
深圳|91年IT研发,期待一份不必伪装的长久陪伴
+5/335
中国农大 课题组招收2027年9月入学的考核制博士生
+5/95
[Sensors] 特刊征稿
+1/91
上海交通大学招聘塑料催化裂解/甲醇重整制氢等方向博士后
+1/84
沈阳工业大学 环境电化学技术研究团队 招收硕士研究生(学硕/专硕)
+2/72
中国科大-合肥国家实验室冷原子量子网络团队招聘启事
+2/62
[Complex & Intelligent Systems] 专刊征稿
+1/39
坐标广州,诚征女友,结婚对象,非诚勿扰
+1/38
爱丁顿实验
+1/33
湖南大学-分析检测技术和生物柔性传感器-招收1名博士研究生 (2027年)
+1/28
高分辨质谱测试丨科研单位对外服务
+1/19
厦大化院海优团队招收无机化学-材料-物理方向2027级【博士】研究生1名
+1/8
深圳大学金融科技学院王云奇团队博士后招聘
+1/3
生物发酵罐气体智能管控,层流质量流量控制器如何赋能?
+1/2
蛋白翻译后修饰:解码细胞功能调控的分子密码
+1/2
委托检验的安全锁:质量保证协议,你签了吗?
+1/2
细胞检定样品,您用对了吗?
+1/1
2楼2010-12-13 11:44:39
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3):谢谢参与应助! 2010-12-13 22:02:40
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3):谢谢参与应助! 2010-12-13 22:02:40
|
本帖内容被屏蔽 |
3楼2010-12-13 14:25:02










回复此楼