返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ 字符串的反转五种方法实例
  • 624
分享到

C++ 字符串的反转五种方法实例

C++字符串反转 2022-11-15 22:11:08 624人浏览 独家记忆
摘要

//通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 c++ 基础知识//直接使用字符数组赋值char* strrev1(const char* str){  


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


//直接使用字符数组赋值
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 <= length/2; ++i)//对字符数组中的字符反转,循环执行条件为标识小于或等于字符长度一半
   {
      char c = temp[i];
      temp[i] = temp[length - i -1];
      temp[length - i -1] = c;
   }
   return temp;//返回反转后的字符
}
//采用指针操作方式
char* strrev2(const char* str)
{
   char* tmp = new char[strlen(str)];
   strcpy(tmp,str);
   char* ret = tmp;//用来最后返回数组指针
   char* p = tmp + strlen(str) - 1;
   while (p > 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 <= strlen(str); i++)
   {
      temp[i] = str[strlen(str) - i -1];
   }
   return temp;
}
//使用递归进行字符反转,网上看的,不过感觉不好,限制太多
//(不能直接反转常量字符串,因为没有定义新的字符数组,而是在原数组上直接进行字符反转,节省空间,提高效率,还要传递字符长度,增加限制,但总归是个思路)
char* strrev5 (char* str,int len)
{
   if (len <= 1)
      return str;
   char t = *str;
   *str = *(str + len -1);
   *(str + len -1) = t;
   return (strrev5(str + 1,len - 2) - 1);
}

std::string strrev6(const std::string str)
{
  string r ;//定义一个新的字符串变量,用来接收
  string r;
   for(int i = 0; i < str.length(); ++i)
   {
      r = str[i] + r;//注意顺序
   }
  return r;
}

std::string strrev6(std::string str)
{
  for(int i = 0; i <= str.length()/2; ++i)
   {
      char c = str[i];
      str[i] = str[str.length() - i -1];
      str[str.length() - i - 1] = c;
     }
   return str;
}

--结束END--

本文标题: C++ 字符串的反转五种方法实例

本文链接: https://lsjlt.com/news/172597.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++ 字符串的反转五种方法实例
    复制代码 代码如下://通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 C++ 基础知识//直接使用字符数组赋值char* strrev1(const char* st...
    99+
    2022-11-15
    C++ 字符串 反转
  • Python中五种实现字符串反转的方法
    目录前言方法1方法2方法3方法4方法5前言 一道题目是实现一个反转字符串的函数,具体如下: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给...
    99+
    2024-04-02
  • C++字符串反转的几种方法
    通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 C++ 基础知识 //直接使用字符数组赋值 char* strrev1(const char* str) { ...
    99+
    2024-04-02
  • JAVA多种方法实现字符串反转
    本人自己思考+网络搜罗,分类整理了以下4类9种方法: A类:使用JAVA原生方法 -A1:使用StringBuffer的reverse方法 -A2:使用StringBuilder的r...
    99+
    2024-04-02
  • java字符串反转的7种方法
    目录1、用stringBuffer或者stringBuilder自带的reverse方法2、将字符串拆分为char数组3、stringBuffer倒序拼接4、利用栈的先进后出5、二分...
    99+
    2024-04-02
  • Python实现字符串反转的6种方法
    1.使用字符串切片 >>> s = "python">>> s[::-1]'nohtyp'>>> 2.使用列表的reverse方法 >>> s = "python">>> lst = list(s)>...
    99+
    2023-09-25
    python 开发语言
  • PHP实现字符串反转的方法
    小编给大家分享一下PHP实现字符串反转的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP实现字符串反转的方法:1、通过php自带的strrev函数实现反转...
    99+
    2023-06-08
  • 在Java中反转字符串的10种方法[Snippets]
    在本文中,我们将讨论如何以10种不同的方式在Java中反转String。在本文中,我们将编写10个Java程序来反转String。例如,从“javaguides”到“sediugavaj”的反向字符串。用Java反转字符串的10种方法1.使...
    99+
    2023-06-02
  • JavaScript将字符串反转的方法
    小编给大家分享一下JavaScript将字符串反转的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript反转字符串的方法:首先使用split()...
    99+
    2023-06-14
  • python反转(逆序)字符串的6种方法详细
    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆...
    99+
    2024-04-02
  • python方法如何实现字符串反转
    目录python方法实现字符串反转方法一:反转列表法方法二:循环反向迭代法方法三:反向循环迭代法方法四:倒序切片法方法五:遍历索引法方法六:列表弹出法方法七:列表解析式法方法八:反向...
    99+
    2023-01-31
    python字符串反转 python字符串 python反转字符串
  • Python字符串反转实现的方法有哪些
    这篇文章主要介绍“Python字符串反转实现的方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python字符串反转实现的方法有哪些”文章能帮助大家解决问题...
    99+
    2024-04-02
  • Shell中实现字符串反转方法分享
    在做关键词清洗过程中,需要将一类不符合某个字结尾的词过滤出来,思路是把这一批词按最后一个字排序,于是想到了先把这些词反转一下,如把12345转为54321,好像以前在夜息的文章里看过用shell可以实现,就...
    99+
    2022-06-04
    字符串 方法 Shell
  • Python 字符串去除空格的五种方法
    在处理Python代码字符串的时候,我们常会遇到要去除空格的情况,所以就总结了多种方法供大家参考。 1、strip()方法 去除字符串开头或者结尾的空格 str = " Hel...
    99+
    2024-04-02
  • java字符串反转的方法有哪些
    这篇文章主要介绍了java字符串反转的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、用stringBuffer或者stringBuilder自带的reverse...
    99+
    2023-06-29
  • java字符串反转的方法是什么
    Java中字符串反转的方法有以下几种: 使用 StringBuilder 或 StringBuffer 的 reverse...
    99+
    2023-10-23
    java
  • Python反转字符串的方法是什么
    在Python中,反转字符串有多种方法,其中一种是使用切片操作: string = "hello" revers...
    99+
    2024-03-02
    Python
  • Java实现字符串反转
    第一种: public class Main { public static void main(String[] args) { String s1 = ...
    99+
    2024-04-02
  • c语言如何实现字符串反转
    C语言可以通过循环遍历字符串并交换字符的位置来实现字符串的反转。具体步骤如下:1. 首先,定义一个指向字符串的指针。2. 使用`st...
    99+
    2023-09-12
    c语言
  • C++实现LeetCode字型转换字符串的方法
    这篇文章主要介绍“C++实现LeetCode字型转换字符串的方法”,在日常操作中,相信很多人在C++实现LeetCode字型转换字符串的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++实现LeetCo...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作