C语言 写一个函数使输入的一个字符串按反序存放 在线等答案!

#include<string.h>#include<stdio.h>
void fanxu(char b[],char m[]) //定义两个字符串,分别存储输入和反序后的字符串{
int i,n;n=strlen(b);
for(i=0,n--;n>=0;n--,i++) // 这句代码什么意思啊?
m[i]=b[n];
}
void main()
{
int i;
char a[100],b[100]={0};
scanf("%s",&a);
fanxu(a,b);
printf("%s",b);
}

for(i=0,n--;n>=0;n--,i++) 这句不知道什么意思
以注释的形式解释一下

strlen实际上是,从参数表示的地址往后找,找到第一个'\0',即串尾。然后计算'\0'至首地址的“距离”,即隔了几个字符,从而得出长度。对于那句代码,是把最后一个量赋给另一个数组的第一项,直到n-1到0时,也就是把第一个数组的元素从最后开始赋值给另一个数组的第一个元素,直到第二个数组的第一个元素都赋值给另一个数组。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-05
#include<string.h>
#include<stdio.h>
void fanxu(char b[],char m[]) //定义两个字符串,分别存储输入和反序后的字符串{
{
int i,n;
n=strlen(b);
for(i=0,n--;n>=0;n--,i++) // 这句代码什么意思啊?i=0,n-这是for循环的初始条件,即i= 0;n= strlen(b)-1//n>=0这是for循环的截止条件//n--,i++变化条件执行完循环体之后n减一i加一
m[i]=b[n];
}
void main()
{
char a[100],b[100]={0};
printf("
scanf("%s",&a);
fanxu(a,b);
printf("%s\n",b);
}
第2个回答  2011-12-06
#include<stdio.h>
#include<string.h>
int main()

{char a[80];
void zfc(char a[]);
gets(a);
zfc(a);
puts(a);}

void zfc(char a[])
{ int b,i;
char c;
b=strlen(a);
for(i=0;i<b/2;i++)
{c=a[i];a[i]=a[b-1-i];a[b-1-i]=c;}
}

简单易懂,呵呵。。。不要copy我的答案哦,呵呵呵。。。
第3个回答  2011-12-05
这是一个循环语句
for(i=0,n--;n>=0;n--,i++)
1、先置i=0,n--
2、判断n>=0,若成立执行{m[i]=b[n];}
3,、n--,i++
4、跳回步骤2
第4个回答  2012-05-19
#include<stdio.h>
#define N 100
int main()
{
int i, j;
char t, a[N];
gets(a);
j = strlen(a) - 1;
// printf("%d\n",j);
for(i = 0; i < strlen(a)/2; i++, j--)
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
for(i = 0; i < strlen(a); i++)
{
printf("%c",a[i]);
}
printf("\n");
return 0;
}
相似回答