21xrx.com
2024-09-19 09:36:12 Thursday
登录
文章检索 我的文章 写文章
C++实现字符串反转
2023-07-04 00:05:54 深夜i     --     --
C++ 字符串 反转 实现

在编程中,字符串是一个常用的数据类型之一,常见的字符串类型包括 char、wchar_t 等。而在实际的开发中,经常需要对字符串进行处理,其中就包括字符串反转。本文将介绍 C++ 实现字符串反转的方法。

1. 通过循环实现字符串反转

通过循环实现字符串反转是最基本的方法,具体步骤如下:

1) 定义两个指针,一个指向字符串的首位,一个指向字符串的末位。

2) 通过循环交换首尾指针所指向的字符,直至首尾指针相遇。

下面是代码实现:


#include <iostream>

#include <string>

using namespace std;

void reverseString(string s) {

  int len = s.length();

  for (int i = 0; i < len / 2; i++) {

    char temp = s[i];

    s[i] = s[len - i - 1];

    s[len - i - 1] = temp;

  }

  cout << "反转后的字符串为:" << s << endl;

}

int main() {

  string s = "hello world";

  cout << "原字符串为:" << s << endl;

  reverseString(s);

  return 0;

}

2. 通过递归实现字符串反转

除了循环方式外,我们还可以通过递归方式实现字符串反转。具体思路如下:

1) 以最后一个字符为基准,将字符串分为两部分,一部分为最后一个字符之前的部分,另一部分为最后一个字符之后的部分。

2) 通过递归调用,将第一部分字符串继续反转。

3) 最后将第一部分字符串和第二部分字符串拼接在一起,即为反转后的结果。

下面是代码实现:


#include <iostream>

#include <string>

using namespace std;

string reverseString(string s) {

  if (s.length() == 1)

    return s;

  

  return reverseString(s.substr(1)) + s.substr(0, 1);

}

int main() {

  string s = "hello world";

  cout << "原字符串为:" << s << endl;

  cout << "反转后的字符串为:" << reverseString(s) << endl;

  return 0;

}

以上便是 C++ 实现字符串反转的方法,希望可以帮助到大家。在编写代码时,需要注意字符串的 null 终止符,避免出现字符覆盖或溢出等问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复