| 查看: 1264 | 回复: 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。 性能上它们不一定有多大差别。 |
» 猜你喜欢
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有18人回复
面上可以超过30页吧?
已经有7人回复
网上报道青年教师午睡中猝死、熬夜猝死的越来越多,主要哪些原因引起的?
已经有5人回复
“人文社科而论,许多学术研究还没有达到民国时期的水平”
已经有6人回复
版面费该交吗
已经有13人回复
为什么中国大学工科教授们水了那么多所谓的顶会顶刊,但还是做不出宇树机器人?
已经有10人回复
什么是人一生最重要的?
已经有4人回复
» 抢金币啦!回帖就可以得到:
单曲循环久了很多都会变
+1/405
高级研发工程师/研发工程师 – 锂离子电池正极材料回收与制备-香港纳米及先进材料研发
+1/291
江西景德镇某大学接受调剂:环境科学与工程专业
+1/187
求助哪里可以做光催化产氢的放大实验
+1/91
南通大学生物医药方向国家级人才团队招聘教师
+3/86
上海交通大学叶天南课题组招聘2026级博士研究生
+1/79
广工-董华锋教授团队招收博士生(1学博-0-1专博)
+1/76
澳门理工大学人工智能智慧康养方向26 年9月入学博士招生有奖学金
+1/35
南通大学生物医药方向国家级人才团队招收“申请-考核”制博士研究生20260222
+2/34
澳门理工大学人工智能智慧康养26 年9月入学 博士招生有奖学金
+1/34
同济大学 环境科学与工程学院 国家级青年人才团队 诚聘脱产博士后
+1/30
【青岛大学】2026年生物与医药申请考核制博士生招生(含少数民族骨干人才)
+1/16
蛋白结构质谱实验室202609入学博士生(1名,202603月底报名)
+1/12
新西兰 奥克兰理工大学(AUT)招博士,海藻资源化方向,详情请见如下内容,谢谢!
+1/9
青岛大学纺织服装学院张宪胜教授招收博士研究生
+1/7
英国南安普顿大学招博后+博士(微流控,分子动力学)
+1/5
博士招生
+1/4
湘潭大学国家级人才黄建宇教授团队2026年博士研究生招生
+1/4
青岛科技大学 高分子学院 导师招生
+1/4
新加坡南洋理工大学- 光电/ 智能传感/ 脑机接口方向 博士后
+1/3
★ ★ ★ ★
小木虫(金币+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
2楼2010-12-13 11:44:39













回复此楼