21xrx.com
2024-11-22 09:51:20 Friday
登录
文章检索 我的文章 写文章
C++字符串倒序:实现方法
2023-07-04 21:41:10 深夜i     --     --
C++ 字符串 倒序 实现方法

在 C++ 编程中,倒序输出一个字符串是一个常见的任务。通常情况下,我们需要将给定字符串翻转,并将其输出到屏幕上或存储在一个新的变量中。下面介绍几种 C++ 字符串倒序的实现方法。

1. 原地翻转法

这种方法是最简单的一种,它将字符串原地翻转,也就是需要将字符串的第一个元素和最后一个元素交换,直到所有的元素都被操作过为止。实现代码如下:


#include<iostream>

#include<cstring>

using namespace std;

int main() {

  char str[] = "hello world";

  int len = strlen(str);

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

    swap(str[i], str[len-i-1]);

  }

  cout << str << endl;

  return 0;

}

2. 递归翻转法

递归方法也可以实现字符串的倒序操作。它的递推公式如下:


reverse(s[1..n]) = reverse(s[2..n]) + s[1]

递归的结束条件是输入字符串为空。下面是递归实现的代码:


#include<iostream>

#include<cstring>

using namespace std;

void reverse(const char* s) {

  if(*s == '\0') {

    return;

  }

  reverse(s+1);

  cout << *s;

}

int main() {

  char str[] = "hello world";

  reverse(str);

  return 0;

}

3. 使用stringstream方法

stringstream 方法可以将一个字符串转换为流,并允许开发人员迭代流元素。这种方法将字符串划分为每个单独的字符,并将其插入到stringstream 流中。然后,能够遍历这个串流,并翻转字符串。下面是stringstream 实现方法的示例代码:


#include<iostream>

#include<cstring>

#include<sstream>

using namespace std;

int main() {

  char str[] = "hello world";

  stringstream ss;

  for(int i = strlen(str)-1; i >= 0; i--) {

    ss << str[i];

  }

  string reversed_str = ss.str();

  cout << reversed_str << endl;

  return 0;

}

以上是C++中几种常见的字符串倒序实现方法,可以针对不同的需求选择适合自己的方法来实现。

  
  

评论区

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