读书人

字符串 strncpy有关问题小弟我势要

发布时间: 2012-03-20 14:01:11 作者: rapoo

字符串 strncpy问题,我势要解决,在线等,谢谢大家
[code=C/C++][/code]#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){

char* src = "ABCDEF";
char* dest = NULL;
dest = (char*)malloc(strlen(src)+1);
strncpy(dest,src,strlen(src));
printf("%s\n",dest);
//释放暂时不写了
return 0;


}

strncpy(dest,src,strlen(src));这句出问题了,还是说上面内存申请出问题了?

strncpy(dest,src,7);大小直接填写7的话,就不会有问题。。。

纠结啊,觉得字符串问题还是蛮复杂的,所以想弄清楚,,,求大家帮忙,谢谢

[解决办法]
没什么问题吧
最好在strncpy之后,加一句
dest[strlen(src)] = 0;

添加字符串结束符\0
[解决办法]
strncpy(dest,src,strlen(src));//它拷贝的只是“ABCDEF”,'\0'不会拷贝进去,而在你执行printf("%s\n",dest);时有可能访问不该访问的地方。

我用VS2010编译时可以运行,没有报错,只是输出的结果并不是我需要的,建议改成strncpy(dest,src,strlen(src)+1);试试

读书人网 >C语言

热点推荐