theme: channing-cyan highlight: a11y-dark
「这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」
给定一个字符串,编写一个 C/C++ 程序来反转它。
通过交换字符编写自己的反向函数: 一个简单的解决方案是编写我们自己的反向函数来反转C++ 中的字符串。
// 一个简单的 C++ 程序来反转字符串
#include <bits/stdc++.h>
using namespace std;
// 反转字符串的函数
void reverseStr(string& 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;
}
gnoyiah
// 反转 [begin, end] 中的元素
void reverse (BidirectionalIterator begin,
BidirectionalIterator end);
//一个快速编写的程序,用于使用 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;
}
gnoyiah
// 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);
}
gnoyiah
// 获取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);
}
gnoyiah
// 使用构造函数反转字符串的简单 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;
}
gnoyiah
5.使用临时字符串
// 使用构造函数反转字符串的简单 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;
}
输出:
gnoyiah