字符串的逆转串求助
在下面字符串逆转串的程序中,有s2[i-j-1]=s1[j]语句。按前两个for循环初条件i=0和j=0的运行到s2[i-j-1]=s1[j]时,则有s2[i-j-1]=s2[0-0-1]=s2[-1],s1[j]=s1[0],即s2[-1]=s1[0];接下来就是i=0和j=1,则有s2[i-j-1]=s2[0-1-1]=s2[-2],s1[j]=s1[1],即s2[-2]=s1[1];续后是:s2[-3]=s1[2],s2[-4]=s1[3],直到s2[-21]=s1[20]。当进行第二遍循环时,i=1和j=0,s2[i-j-1]=s2[1-0-1]=s2[0],s1[j]=s1[0],即s2[0]=s1[0]。当i=1和j=1时,有s2[i-j-1]=s2[1-1-1]=s2[-1],s1[j]=s1[1],即s2[-1]=s1[1];续后是:s2[-2]=s1[2],直到s2[-21]=s1[20]。问如此循环是怎样逆转了的。程序如下:
#include<stdio.h>
main()
{
char s1[20],s2[20];
int i,j;
printf("字符串:");
scanf("%s",s1);
for (i=0;s1[i]!='\0';i++);
for (j=0;s1[j]!='\0';j++)
s2[i-j-1]=s1[j];
s2[i]='\0';
printf("逆转串:%s\n",s2);
}