【答案】
void ChA(void)
{
int i,j,k; /*定义循环控制变量*/
int str; /*存储字符串的长度*/
char ch,temp; /*定义字符暂存变量*/
for(i=0;i<maxline;i++) /*以行为单位获取字符*/
{
str=strlen(xx[i]); /*求得当前行的字符串长度*/
ch=xx[i][0]; /*将第一个字符暂存入ch*/
for(j=0;j<str-1;j++)
/*将该字符的ASCII值与下一个字符的ASCII值相加,得到新的字符*/
xx[i][j]+=xx[i][j+1];
xx[i][str-1]+=ch;
/*将最后一个字符的ASCII值与第一个字符的ASCII值相加,得到最后一个新的字符*/
for(j=0,k=str-1;j<str/2;j++,k--) /*将字符串逆转后仍按行重新存入字符串数
组xx中*/
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
【解析】本题要对二维数组中的字符元素按行处理,首先要求得当前行所包含的字符数,并保存第一个字符。接着通过循环逐个将每个字符的ASCII值与下一个字符的ASCII值相加,得到新的字符,存入当前位置。然后将保存的第一个字符与最后一个字符相加作为新的最后一个字符。最后再把已经处理过的字符串逆序重新存放到数组xx中。