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;
}
是什么意思 展开
{
t=str[i];
sre[i]=str[j-1];
str[j-1]=t;
}
是什么意思 展开
1个回答
展开全部
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个对调。。。。。。。依次类推
相当于每次循环
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从第一个字符往后依次取,就是反过来从最后一个字符开始依次往前取,没取一次,这两个就对换位置
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询