【正确答案】正确答案:int len=0; for(;string[len]!=NULL;len++) //获取字符串的长度 ; len--; //下标从0开始到len-1 for(int i=0;i<len;i++,len--) //第一个和最后一个比较,第二个和倒数第二个比较 { if( string[i] != string [len])//不等说明不同,返回0 return 0; } return 1;
【答案解析】解析:(1)由于字符串的长度是未知的,先利用循环求出字符串的长度,循环变量从0开始,直到数组的结束,string[len]=NUL为循环结束条件,如此便得到了数组的长度len。 (2)知道长度后就可以判断对称位置的元素是否相同,比如第一个元素和最后一个元素,第二个元素和倒数第二个元素,如此比较下去直到到了最中间的元素为止。 (3)可以利用循环来比较是否对称,设置另一个循环变量i,i从0开始表示从数组的头开始读数,len从数组的尾部开始读数,如果string[i]!=string[len],则跳出循环返回0,如果循环结束还没发现不同则返回1。