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

c字符串 - C/C++ / C语言

C/C++ code:



#include "stdio.h"
int main(void)
{
char s1[] ="hello";
char s2[] = "wor";
strcpy(s1+strlen(s1),s2);
puts(s1);
return 0;
}




结果为 hellowor

我想问下strcpy 第一个参数 s1+strlen(s1)是什么东西, 弄不明白是怎么实现的
这个不行吧!
char s1[] ="hello";
 char s2[] = "wor";
首先你定义的都是常量数组,不能copy的!
再就是即便是能copy 你 s1的长度也不够容纳 两个之和呀!

destination的地址。


strcpy(des,orign) 是从origi拷贝到des , 拷贝的长度是orgin的指针指向的地址到从这个地址开始找到的第一个\0。


s1这里变成里char*,s1+strlen(s1)就成了s1的字符串尾。




s1是字符串的首地址...
strlen(s1)是s1的长度.
所以就是将s2接在s1的后面了.


这样不会栈溢出?怪!

数组名s1其实是一指针,s1指向“hello”的"h",而strlen(sl)是返回“hello”的长度,
即strlen(s1)=5,故s1+strlen(s1)是指向“hello”中“o”的下一位置。
所以:strcpy(s1+strlen(s1),s2);只是将s2复制到“o”的后面。如此结果为"hellowor"。

LZ,可以得到你说的结果?

s1+strlen(s1)是地址啊。s1本来就是s1数组的初地址。再加上长度就是s1的末地址了、strcpy是复制函数。参数是指针。就是继续往后面复制s2的内容

C语言灵活多变。。


这个问题以前我问过。


相关问答:

VFP如何调用C函数 - 其他数据库开发 / VFP

请问VFP中如何调用C/C++函数?

你要调用什么功能的函数?要看看VFP中有没有对应的函数,如果有就省着再调用了。如果没有,可以将C/C++函数写个DLL或FLL,然后在VFP调用即可。

十豆三 老师,怎么才能修改自己的 ......

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# Winform 触摸屏程序 - .NET技术 / C#

公司开发一个触摸屏程序,我负责的一块,实现这样一个功能,当鼠标点击窗口中图片(一张图分成几部分)的其中一部分时,将这部分图片截取出来,弹出新的窗口,将截取出的图片显示出来。我使用Rectange类控制了返回, ......

ruby和MinGW的一次融合 - C/C++ / C++ 语言

希望给大家提供一些新的思路.
我们在使用C编程时会遇到一个问题,比如头文件的一个函数包含在一个lib 中,但是
在实际连接中我们不知道它在哪个库中。也许可行的一种办法是直接上网查询某个
函数的依赖条件,这对 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号