复制字串 for (int len = 0; dst[len]=src[len]; len++) ; //循环判断语句为什么是 dst[len]=src[len]

shadowstory80 2005-11-02 03:16:31
程序的原文如下:

/*

复制字串

*/



#include <stdio.h>

//#include <iostream.h>

//--- 复制字串src到dst ---//

void strcopy(char dst[], const char src[])

{

for (int len = 0; dst[len]=src[len]; len++) //循环判断语句为什么是 dst[len]=src[len]

printf("len=%d",len);
//cout<<len<<endl;

}



int main(void)

{

char x[100];

char y[100] = "ABCD";

printf("y=%s",y);
//cout<<y;
printf("请输入字串x::\n");
//cout << "请输入字串x::";
//
scanf("%s",x);
//cin >> x;



strcopy(y, x); // 复制字串x到y

printf("字串y=%s\n",y);

//cout << "字串y是" <<y<< "。\n";



return (0);

}
...全文
172 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bombwang 2005-11-12
  • 打赏
  • 举报
回复
mark
060 2005-11-12
  • 打赏
  • 举报
回复
happy__888([顾问团]寻开心) ( )
说的清楚
for(int len=0;dst[len]=src[len];len++)
其中的dst[len]=src[len],是赋值语句,赋完之后执行判断。
ywchen2000 2005-11-10
  • 打赏
  • 举报
回复
for (int len = 0; dst[len]=src[len]; len++)
first:
dst[len]=src[len];
second:
dit[len]!='\0';
  • 打赏
  • 举报
回复
每一个赋值语句其实都返回了一个值,即被赋的值,所以a = b = c = d;才得以进行
所以a = b 返回的值是b
其后结果如happy__888 所言
pebblefanny 2005-11-02
  • 打赏
  • 举报
回复
for(int len=0;dst[len]=src[len];len++)//其中的dst[len]=src[len],我认为是判断语句,就是src[len]到最后结尾是碰到'\0'时,判断结束!!
哈哈
bm1408 2005-11-02
  • 打赏
  • 举报
回复
agree up~~
只是简化了~
寻开心 2005-11-02
  • 打赏
  • 举报
回复
"循环判断语句为什么是 dst[len]=src[len]"

这句不是判断语句,是一个赋值语句

那句话,在执行到每个循环的时候,执行了赋值命令,然后把这个值作为bool类型来判断循环是否结束的

false和0是等价的

遇到\0的时候,才等于false条件
Baku 2005-11-02
  • 打赏
  • 举报
回复
dst[len]=src[len]
最后一位src[len] = '\0' false ,退出循环

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧