#include
void main( )
{
char s1[20],s2[20];
int i,j;
cout<<"输入字符串:":
cin>>s1;
for(i=0;s1[i]!='\0';i++);
for(j=0;s1[j]!='\0';j++)
{
s2[i-j-1]=s1[j];
}
s2[i]='\0';
cout<<"处理后的字符串:"<}
main()函数中,第一行,定义两个char型数组,s1和s2。第二行,定义两个int型变量,i和j。第三行,输出“输入字符串”。第四行,输入一个字符串,比如“abcdefg”,保存到数组s1中。第五行,for循环,如果数组s1中的元素不为空'\0',变量i就自加。所以循环结束后,i的值为7。第六行,for循环,如果数组s1中的元素不为空'\0',变量j就自加。循环体中的语句是
s2[i-j-1]=s1[j];
i的值为7,所以第一次循环,j=0时,s2[6]=s1[0],意思是数组s2的第6个元素为'a'。第二次循环,j=1时,s2[5]=s1[1],意思是数组s2的第5个元素为'b'。依次类推,s2[4]=s1[2],s2[3]=s1[3],s2[2]=s1[4],s2[1]=s1[5],s2[0]=s1[6]。所以数组s2从第0个元素开始,为字符串"gfedcba",也就是数组s1的逆序。
最后将s2的第7个元素置为空'\0'并输出。希望你能明白。
这个程序的意思是把输入的字符串逆序输出。