C++ 反转字符串(原创)

您所在的位置:网站首页 翻转字符串函数 C++ 反转字符串(原创)

C++ 反转字符串(原创)

#C++ 反转字符串(原创) | 来源: 网络整理| 查看: 265

//通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 C++ 基础知识

/*分析过程:

  假设要使传递的字符串为常量const字符串,这样操作更加灵活,可直接传递字符串字面值进行反转,常见的解决方法就是,定义一个新的与传递过来字符串长度

  相等的字符数组,然后进行字符串拷贝,把str字符按从左到右放置到字符数组中,然后采用循环来对字符数组中字符反转

*/

/*第一种,采用以上思路解法,传递为const类型C风格字符指针,返回为char*类型*/

//直接使用字符数组赋值char* strrev1(const char* str){   const size_t length = strlen(str);//求字符长度   char *temp = new char[length];//新建一个等长度的字符数组   strcpy(temp,str);//字符串拷贝   for (size_t i = 0; i tmp)     {        char t = *tmp;        *tmp++ = *p;        *p-- = t;   }   return ret;}

//与上一函数基本相似,只不过本函数使用是移位操作改变字符指针指向char* strrev3(const char* str){    char* tmp = new char[strlen(str) + 1];   strcpy(tmp,str);    char* ret = tmp;   char* p = tmp + strlen(str) - 1;   while (p > tmp)     {        *p ^= *tmp;      *tmp++ ^= *p;                 *p-- ^= *tmp;   }    return ret;}

//节省几步,直接给新建的字符数组赋反转的值,呵呵,简单明了,只不过循环多执行几次char* strrev4(const char* str){    char * temp = new char[strlen(str)];    for(int i = 0; i



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3