for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)是什么意思

for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--){t=str[i];sre[i]=str[j-1];str[j-1]=t;}是... for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)
{
t=str[i];
sre[i]=str[j-1];
str[j-1]=t;
}
是什么意思
展开
 我来答
自我编程
2017-12-17 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部
for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)
相当于每次循环
1、先赋值i=0;j=strlen(str);//strlen获取字符串长度,第一个字符到结束符‘\0'的字符个数
2、再判断i<strlen(str)/2
3、判断成立执行循环内容
4、最后i++,j-- 再跳第2步
至于整个程序的意思,就是 第1个字符和最后1个字符对调位置
第2个字符和倒数第2个对调。。。。。。。依次类推
更多追问追答
追问
导调位置是怎么实现的呢?我想问一下那个i<strlen(str)/2的作用还有j--是怎么帮助实现的,麻烦了!
追答
我上面说了,i<strlen(str)/2后面的语句就是 循环内容执行末尾要执行的内容可以多个,逗号分割

for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--)
{
t=str[i];
sre[i]=str[j-1];
str[j-1]=t;
}
这个我也可以写成
j=strlen(str);
for(i=0;i<strlen(str)/2;i++)
{
t=str[i];
sre[i]=str[j-1];
str[j-1]=t;
j--;
}
这样是不是就看懂了? i从第一个字符往后依次取,就是反过来从最后一个字符开始依次往前取,没取一次,这两个就对换位置
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式