用C++编一程序,将字符串中内容逆置
时间: 2023-05-30 18:05:12 浏览: 56
以下是用C语言实现字符串内容逆置的程序:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str) {
int len = strlen(str);
int i, j;
char temp;
for (i = 0, j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse_string(str);
printf("逆置后的字符串为:%s\n", str);
return 0;
}
```
程序中定义了一个函数 `reverse_string`,用来实现字符串内容的逆置。该函数的参数为字符串指针 `str`,通过计算字符串的长度,以及使用双指针法来实现字符串内容的逆置。
在 `main` 函数中,通过获取用户输入的字符串,调用 `reverse_string` 函数来实现字符串内容的逆置,并输出逆置后的字符串。
相关问题
C++用递归逆置字符串
可以递归函数来逆置一个字符串,具体实现如下:
```c++
#include <iostream>
#include <string>
using namespace std;
void reverse(string& s, int left, int right) {
if (left >= right) {
return;
}
// 交换左右两边的字符
swap(s[left], s[right]);
// 递归处理中间的字符
reverse(s, left + 1, right - 1);
}
int main() {
string s = "Hello, world!";
reverse(s, 0, s.size() - 1);
cout << s << endl;
return 0;
}
```
在递归函数`reverse()`中,我们比较左右两端的下标,如果左下标大于等于右下标,说明已经逆置完成,直接返回。否则,我们将左右两个字符交换,并递归处理中间的字符。最终,整个字符串就被逆置了。
C++,将一个一维字符数组进行逆置输出
好的,这个问题很简单,可以使用双指针来实现,具体代码如下:
```c++
#include <iostream>
using namespace std;
void reverse(char* str) {
if(str == nullptr) {
return;
}
// 计算字符串长度
int len = 0;
while(str[len] != '\0') {
len++;
}
// 双指针逆置
int left = 0, right = len - 1;
while(left < right) {
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
}
int main() {
char str[] = "1357";
reverse(str);
cout << str << endl; // 输出7531
return 0;
}
```
另外需要注意的是,字符串最后一位是`\0`,表示字符串的结尾,也要算在字符串长度里面。