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

1. 通过交换字符来编写自己的反向函数:一个简单的解决方案是编写我们自己的反向函数来反转C++中的字符串。
// A Simple C++ program to reverse a string
#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void reverseStr(string& str)
{
int n = str.length();
// Swap character starting from two
// corners
for (int i = 0; i < n / 2; i++)
swap(str[i], str[n - i - 1]);
}
// Driver program
int main()
{
string str = "geeksforgeeks";
reverseStr(str);
cout << str;
return 0;
}
输出:
skeegrofskeeg
2. 使用内置的“reverse”函数:“algorithm”头文件中有一个用于执行reverse的直接函数,可以节省编程时间。
// Reverses elements in [begin, end]
void reverse (BidirectionalIterator begin,
BidirectionalIterator end);
// A quickly written program for reversing a string
// using reverse()
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str = "geeksforgeeks";
// Reverse str[beign..end]
reverse(str.begin(), str.end());
cout << str;
return 0;
}
输出:
skeegrofskeeg
3. 仅反向打印:
// C++ program to print reverse of a string
#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void reverse(string str)
{
for (int i=str.length()-1; i>=0; i--)
cout << str[i];
}
// Driver code
int main(void)
{
string s = "GeeksforGeeks";
reverse(s);
return (0);
}
输出:
skeegrofskeeG
4. 反转const字符串:
// C++ program to get reverse of a cosnt string
#include <bits/stdc++.h>
using namespace std;
// Function to reverse string and return
// reverse string pointer of that
char* reverseConstString(char const* str)
{
// find length of string
int n = strlen(str);
// create dynamic pointer char array
char *rev = new char[n+1];
// copy of string to ptr array
strcpy(rev, str);
// Swap character starting from two
// corners
for (int i=0, j=n-1; i<j; i++,j--)
swap(rev[i], rev[j]);
// return pointer of reversed string
return rev;
}
// Driver code
int main(void)
{
const char *s = "GeeksforGeeks";
printf("%s", reverseConstString(s));
return (0);
}
输出:
skeeGrofskeeG