前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 C\u002FC++ 中反转字符串的不同方法

在 C\u002FC++ 中反转字符串的不同方法

作者头像
鲸落c
发布2022-11-14 16:43:28
5620
发布2022-11-14 16:43:28
举报
文章被收录于专栏:鲸落学习笔记鲸落学习笔记

theme: channing-cyan highlight: a11y-dark


「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战

给定一个字符串,编写一个 C/C++ 程序来反转它。

通过交换字符编写自己的反向函数: 一个简单的解决方案是编写我们自己的反向函数来反转C++ 中的字符串。

代码语言:javascript
复制
// 一个简单的 C++ 程序来反转字符串
#include <bits/stdc++.h>
using namespace std;

// 反转字符串的函数
void reverseStr(string&amp; str)
{
    int n = str.length();

    // 从两个角开始交换字符
    for (int i = 0; i < n / 2; i++)
        swap(str[i], str[n - i - 1]);
}

// 驱动程序
int main()
{
    string str = "haiyong";
    reverseStr(str);
    cout << str;
    return 0;
}
  1. 输出 :
代码语言:javascript
复制
gnoyiah
  1. 使用内置的“反向”功能:  “算法”头文件中有一个直接的功能可以进行反向操作,可以节省我们在编程时的时间。
代码语言:javascript
复制
// 反转 [begin, end] 中的元素
void reverse (BidirectionalIterator begin, 
BidirectionalIterator end);
代码语言:javascript
复制
//一个快速编写的程序,用于使用 reverse() 反转字符串
#include <bits/stdc++.h>
using namespace std;
int main()
{
    string str = "haiyong";

    // 反向 str[begin..end]
    reverse(str.begin(), str.end());

    cout << str;
    return 0;
}
  1. 输出 :
代码语言:javascript
复制
gnoyiah
  1. 只打印反向
代码语言:javascript
复制
// C++程序打印一个字符串的反转
#include <bits/stdc++.h>
using namespace std;

// 反转字符串的函数
void reverse(string str)
{
for (int i=str.length()-1; i>=0; i--)
    cout << str[i];
}

// 驱动程序代码
int main(void)
{
    string s = "haiyong";
    reverse(s);
    return (0);
}
  1. 输出: \
代码语言:javascript
复制
代码语言:javascript
复制
gnoyiah
  1. 获取 const 字符串的反转:
代码语言:javascript
复制
// 获取const字符串反转的C++程序
#include <bits/stdc++.h>
using namespace std;

// 函数反转字符串并返回该字符串的反向字符串指针
char* reverseConstString(char const* str)
{
    // 查找字符串的长度
    int n = strlen(str);

    // 创建动态指针字符数组
    char *rev = new char[n+1];

    // 将字符串复制到 ptr 数组
    strcpy(rev, str);

    // 从两个角开始交换字符
    for (int i=0, j=n-1; i<j; i++,j--)
        swap(rev[i], rev[j]);	
    
    // 反转字符串的返回指针
    return rev;
}

// 驱动程序代码
int main(void)
{
    const char *s = "haiyong";
    printf("%s", reverseConstString(s));
    return (0);
}
  1. 输出:
代码语言:javascript
复制
gnoyiah
  1. 使用构造函数反向字符串:将反向迭代器传递给构造函数返回一个反向字符串。
代码语言:javascript
复制
// 使用构造函数反转字符串的简单 C++ 程序
#include <bits/stdc++.h>
using namespace std;
int main(){

    string str = "haiyong";

    //反向迭代器的使用
    string rev = string(str.rbegin(),str.rend());

    cout<<rev<<endl;
    return 0;
}
  1. 输出:
代码语言:javascript
复制
gnoyiah

5.使用临时字符串

代码语言:javascript
复制
// 使用构造函数反转字符串的简单 C++ 程序
#include <bits/stdc++.h>
using namespace std;
int main(){

    string str = "haiyong";
    int n=str.length();
    //存储反向的临时字符串
    string rev;
    for(int i=n-1;i>=0;i--)
    rev.push_back(str[i]);

    cout<<rev<<endl;
    return 0;
}

输出:

代码语言:javascript
复制
gnoyiah
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档