【C++】一个程序题不懂

2025-05-01 08:44:31
推荐回答(2个)
回答1:

#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'并输出。希望你能明白。

回答2:

这个程序的意思是把输入的字符串逆序输出。