易截截图软件、单文件、免安装、纯绿色、仅160KB

关于c风格字符串 - C/C++ / C++ 语言

看primer第115页,看到一个范例:
C/C++ code:


const char *cp1="A string example";
const char *cp2="A different string";
char largeStr[16+18+2];
strncpy(largeStr,cp1,17);
strncat(largeStr," ",2);
strncat(largeStr,cp2,19);
cout<<largeStr<<endl;





不太理解啊, *cp1里面是16和字符,*cp2里面是18个字符,为了容下结束符,"strn"函数第三个参数都加1,我怎么觉得,要是包括进来了结束符,最后largrStr字符串就会成了"A string example\0 A different string\0"
我觉得这样输出的时候就只显示原来cp1的内容就会遇到结束符了啊,但是经过实践,证明书中确实是正确的,如果第三个参数不加1,中间输出一些乱码,但是不理解,不知道我有没有说明白我的意思,谁能解释一下
呵呵,看看strncpy等的源代码吧

楼上的意思是?????没太明白啊,第三个参数不是说进行操作的字符个数吗?不知道楼上有没有明白我的意思


哦!楼上的说的有道理!!!!那要是没有\0的时候strncpy就一直往后找,知道找到\0的时候才继续写,所以中间就会输出乱码是吧,感谢楼上的!明白了。结贴了

第三个参数是你指定拷贝的字符串的长度,不一定是整个长度啊!!!
C/C++ code:

const char *cp1="A string example";
const char *cp2="A different string";
char largeStr[


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

求助:C代码change toVB代码 - VB / 基础类

挺繁琐,之前发的帖子,分值太低现在重发一个。欢迎各位大侠~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[] ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号