题目:
用C语言实现反转字符串strrev()函数。
思想:
循环,依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换…(终止符“\0”不动)
面试提问字符串的操作,主要是考察几点:一对指针和字符串的理解,二是是否进行合法性检查,三是返回值是否是恰当。
代码:
char *ReverseString(char *string)
{
if(string == NULL)
{
return string;
}
char ch;
//计算字符串长度
int strLen = StringLength(string);
//标记要反转的左边位置
int i = 0;
//标记要反转的右边位置
int j = strLen-1;
while(i < j)
{
ch = string[i];
string[i] = string[j];
string[j] = ch;
i++;
j--;
}
return string;
}
注:代码中所用到的求字符串长度的StringLength()函数请看“求字符串长度”