[开心IT字符串] 反转字符串

题目:

   用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()函数请看求字符串长度

你可能感兴趣的:(算法,面试题库)