题目:
用C语言实现反转字符串strrev()函数。
思想:
循环,依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换…(终止符“\0”不动)
面试提问字符串的操作,主要是考察几点:一对指针和字符串的理解,二是是否进行合法性检查,三是返回值是否是恰当。
代码:
char *ReverseString(char *string) { if((string == NULL) || (left == right)) { 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()函数请看“求字符串长度”