21xrx.com
2025-04-01 01:33:30 Tuesday
文章检索 我的文章 写文章
C++实现字符串反转
2023-07-04 00:05:54 深夜i     16     0
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 终止符,避免出现字符覆盖或溢出等问题。

  
  

评论区