C语言题目 A求字符串的长度 B比较两个字符串的大小 C将字符串str1复制到str2中 D将str1接续到str2

下面函数调用功能是(char*funcharstr1,char*str2){while((*str1)&&(*str2++=*str1++));returnstr2;}答... 下面函数调用功能是 (char *fun char str1,char *str2){while ((*str1)&&(*str2++=*str1++));return str2;} 答案是什么呢?求解释,指针程序看不懂 展开
 我来答
xoalyg
2012-02-05 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2374万
展开全部
char *fun(char *str1,char *str2){
while ((*str1) && (*str2++ = *str1++));
return str2;
}
while循环条件有两个,一个是(*str1),含义是,当指针str1指向的内容不是'\0'时,该条件为真;
第二个条件是(*str2++ = *str1++),含义是,将str1指向的内容复制到str2指向的地址单元中,然后将str2指向的内容作为条件(除了'\0'外都是真),两个条件都为真时,则继续,否则,结束循环。要说明的是,悉亩谈(*str2++ = *str1++))在复制完后,两个指针都自增1,以便指向下睁碰一个地址。其实,这个循环可以这样写:
while(*str2++ = *str1++);
再加一句:
*str2 = '\0'
原函数中缺少*str2 = '\0',是不完整的。
从以上分析可知,该函数的耐侍功能是字符串复制,与系统函数strcpy()功能相似。
百度网友28b4182
2012-02-05 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1832万
展开全部
(char *fun char str1,char *str2){世慎while ((*str1)&&(*str2++=*str1++));return str2;}搜搏敬
把str1复银念制到str2里面,然后返回str2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangdebo321
2012-02-05 · TA获得超过203个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:196万
展开全部
复制 和这个类似strcpy:
 char *strcpy(char *strDestination, const char *strSource)
 碧消租 {
 悔兆 assert(strDestination && strSource);
  char *strD=strDestination;
  while ((*strDestination++=*strSource++)!='\0')
  NULL;
  return strD;
 桥缓 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-02-05
展开全部
C 将字符串str1复制到余正str2中
while ((*str1)&&(*str2++=*str1++)); 中*str1 表腊毁稿示判断str1 是否轮孝为空 。*str2++=*str1++ 表示将str中值赋值给str2
不明白追问吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
六幻来滴旧2
2012-02-05 · TA获得超过134个赞
知道答主
回答量:87
采纳率:100%
帮助的人:29.4万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frattini
2012-02-06 · TA获得超过131个赞
知道答主
回答量:164
采纳率:0%
帮助的人:83.4万
展开全部
C 赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式