字符串翻转-不能使用系统函数

来源:互联网 发布:淘宝大学官方网站 编辑:程序博客网 时间:2024/05/21 05:55

思想

  1. 定义头尾两个指针
  2. 交换头尾指针的数据
//字符串翻转char *strrev(char *str){    //判断字符是否为null或是空字符串    if(str == NULL || str == '\0') {        return str;    }    //定义char数组指针    char *start = str;    char *end = str;     while(*end != '\0'){    //指向最后一个结点         end ++;    }    //交换头和尾的值    char temp;     --end;  //去除\0的位置     while(start < end){        temp =  *start;        *start = *end;        *end = temp;        start ++;        end --;    }       return str;} int main(void){     char str[] = "wangming";    cout << strrev(str);    return 0;}

结果

如果可以利用系统的函数,可以定义一个栈, 让字符数组入栈, 然后在出栈也可以达到这个效果, 但是题目却不让使用 系统内提供的资源, 只能利用原始方法了.

如果 时间复杂度还能再低的, 请留言.

1 0
原创粉丝点击