[赋值疑惑]
时间:2010-08-05
来源:互联网
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
-
- int main(int argc, char *argv[])
- {
- char *str = "Hello World";
- char string[20];
- memcpy(string, str, strlen(str));
- string[strlen(str)] = 0;
- printf("%s", string);
- return 0;
- }
作者: allmycheers 发布时间: 2010-08-05
\0
作者: tajial 发布时间: 2010-08-05
这段代码是谁写的啊!无语了。
作者: zhangsuozhu 发布时间: 2010-08-05
作者: lqq_1229 发布时间: 2010-08-05
这段代码是谁写的啊!无语了。
zhangsuozhu 发表于 2010-08-05 11:49
一本书上的,咋了?
作者: allmycheers 发布时间: 2010-08-05
\0
tajial 发表于 2010-08-05 11:44
你的意思是在字符串后加上字符串结束符 阿,书上写0,我没看出来。
作者: allmycheers 发布时间: 2010-08-05
这段代码是谁写的啊!无语了。
zhangsuozhu 发表于 2010-08-05 11:49
这代码写的有问题吗?
作者: donglongchao 发布时间: 2010-08-05
allmycheers 发表于 2010-08-05 11:38
9-10行合并,就是这个意思:
- memcpy(string, str, sizeof(str));
- memcpy(string, str, strlen(str)+1);
作者: ahui886 发布时间: 2010-08-05
ahui886 发表于 2010-08-05 11:57



作者: donglongchao 发布时间: 2010-08-05
之所以说代码那啥,是因为反复调用了strlen,而strlen每次都遍历一次str,效率就下来了,个人建议可以用个变量来暂存一下
作者: daybreakcx 发布时间: 2010-08-05
allmycheers 发表于 2010-08-05 11:56
'\0' 的ascii码就是 0
作者: tajial 发布时间: 2010-08-05
- memcpy(string, str, strlen(str));
- string[strlen(str)] = 0;
- strcpy(string, str);
即便是用memcpy加个变量效率会提升很高
- char string[20] = {0};
- size_t len = strlen(str);
- len = sizeof(string) > len +1? len : sizeof(string) - 1;
- memcpy(string, str, len);
作者: zhangsuozhu 发布时间: 2010-08-05
不知道你吐的什么?你是想说该用strcpy么?
效率一定比memcpy高么?
厄,我知道错了,sizeof(str)压根就得不到字符串的长度。
作者: ahui886 发布时间: 2010-08-05
效率一定比memcpy高么?
ahui886 发表于 2010-08-05 12:04
mem里,不但只copy,而且用了二次strlen
strcpy应该会比 memcpy+2* strlen 快吧!
作者: zhangsuozhu 发布时间: 2010-08-05
吐的好啊,忙了一上午,脑袋晕了,低级错误啊,写出那的代码的确该吐啊
面壁去拉...
作者: ahui886 发布时间: 2010-08-05
str声明形式是:char *str = "Hello World";
这样的静态量能用strcpy修改吗?
作者: 346flytiger 发布时间: 2010-08-05
strcpy(string,str);
LZ要修改的是string
作者: zhangsuozhu 发布时间: 2010-08-05



不好意思啊,看走眼了。。。。。。下次一定认真改正。。。
作者: 346flytiger 发布时间: 2010-08-05
嗯。这段代码的命名容易混
作者: zhangsuozhu 发布时间: 2010-08-05
很8错,

作者: 奶茶dsk 发布时间: 2010-08-05
兼任那些代码,简直太难了,++!
作者: prolj 发布时间: 2010-08-05
休息休息就好啦。


作者: donglongchao 发布时间: 2010-08-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28