5

问答题 5 /86

使用C/C++语言写一个函数,实现字符串的反转,要求不能用任何系统函数,且时间复杂度最小。
函数原型是:char *reverse_str(char *str)

参考答案

/*实现字符串翻转*/
char* reverse_str(char* str)
{
    if(NULL == str) //字符串为空直接返回
    {
        return str;
    }
    char *begin;
    char *end;
    begin = end = str;
    while(*end != '\0') //end指向字符串的末尾
    {
        end++;
    }
    --end;
    char temp;
    while(begin < end) //交换两个字符 
    { 
        temp = *begin; 
        *begin = *end; 
        *end = temp; 
        begin++; 
        end--; 
    } 
    return str; //返回结果 
} 
void main() 
{ 
    char str[] = "123456"; 
    printf(reverse_str(str)); 
}