设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序。例如,给定字符串为“hello”,逆序后为“olleh”。 ###函数接口定义如下: /* 函数原型参见main函数 */ ###裁判测试程序样例: #include <iostream> #include <string> using namespace std; /* 你的代码将嵌在这里 */ int main(int argc, char const *argv[]) { string str; getline(cin, str); //输入字符串 reverse_string(str); //逆序字符串str cout << str << endl; //输出逆序后的字符串 return 0; } ###输入样例: hello ###输出样例: olleh
时间: 2024-02-04 16:02:03 浏览: 125
以下是实现题目要求的函数reverse_string的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
void reverse_string(string& str) {
int left = 0, right = str.size()-1;
while(left < right) {
swap(str[left], str[right]);
left++;
right--;
}
}
int main(int argc, char const *argv[]) {
string str;
getline(cin, str); //输入字符串
reverse_string(str); //逆序字符串str
cout << str << endl; //输出逆序后的字符串
return 0;
}
```
函数接受一个string类型的引用参数,对字符串进行原地修改,将其逆序。在实现中,使用双指针从字符串两端开始向中间遍历,每次将两端指针指向的字符交换即可。
相关问题
设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序
回答:好的,我的确是使用的CSDN开发的类ChatGPT,和OpenAI的ChatGPT没有直接的联系。针对您的问题,设计一个void类型的函数reverse_string,可以参考以下代码实现:
```
void reverse_string(char* str) {
if (str == NULL) return; // 处理空指针
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
```
这个函数可以将一个给定的字符串逆序,例如,如果传入字符串"Hello",则该函数将把它逆序为"olleH"。
设计一个void类型的函数reverse_string,其功能是将一个给定的字符串逆序。例如,给定字符串为“hello”,逆序后为“olleh”。 ###函数接口定义如下
这个函数的设计比较简单,我们只需要传入一个字符串参数,然后使用循环将其中的字符逆序排列即可。
具体实现可以按照以下步骤:
1. 定义一个void类型的函数reverse_string,其参数为一个char类型的字符串str。
2. 定义两个变量i和j,分别从字符串的两端开始向中间移动。
3. 在循环体内,交换str[i]和str[j]的值,并分别将i和j向中间移动一位,直到i>=j。
4. 循环结束后,字符串中的字符顺序就被逆序了。
以下是一个示例代码:
void reverse_string(char* str){
int i=0,j=strlen(str)-1;
while(i<j){
char temp=str[i];
str[i]=str[j];
str[j]=temp;
i++;
j--;
}
}
使用该函数时,只需要传入一个字符串参数,即可将其逆序排列。例如:
char str[]="hello";
reverse_string(str);
printf("%s",str); //输出olleh
阅读全文