标题:[求助]关于strcpy函数的疑问
取消只看楼主
达不留
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-11-3
 问题点数:0 回复次数:2 
[求助]关于strcpy函数的疑问

有人问我:
strcpy(str2+strlen(str2),str1);
什么意思?
我回答:
strcpy()这个函数的前两个参数其实是指针类型,例中的str2,str1,都是数组名,也就是指针,指向该数组元素的首地址。strlen()函数的返回值是整数,字符串指针加上一个整数i,就使指针指向该字符串中第i个字符。strcpy(str2+strlen(str2),str1);的意思就是在str2+srelen(str2)的位置开始复制str1。

结果却不对.
#include"stdio.h"
#include"string.h"

main()
{
char str1[]="girls";
char str2[]="hello boys";
printf("\n\n%s",strcpy(str2+strlen(str1),str1));

}

结果只输出:girls

怎么回事呢??我分析错了么??

搜索更多相关主题的帖子: strcpy 函数 疑问 指针 
2006-11-26 13:24
达不留
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-11-3
得分:0 

恩,先谢了!

char * my_strcpy(char * dst, const char * src)
{
char * cp = dst;
while( *cp++ = *src++ ) ;
return( dst );

}

这是我找的strcpy函数源代码,它返回的是dst呀,在printf里就相当于输出dst,怎么会输出scr呢??

2006-11-26 14:23
达不留
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-11-3
得分:0 
恍然大悟啊!!!!

明白了.谢谢各位!!


(我竟然忘了参数是str2+strlen(str2),而不是str2.犯了这样低级的错误,不该啊!!)
2006-11-26 14:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-105448-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.364872 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved