写一个简单的函数,处理主函数字符串a[10]=“howare” 让字符串 a中的单词逆序,变成 erawoh 。在主函数中输出。注意: 定要改动a里的字符顺序
时间: 2023-11-27 16:54:14 浏览: 69
以下是一个简单的函数,可以将字符串 a 中的单词逆序:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void reverse_string(char* str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
swap(str[i], str[len - i - 1]);
}
}
void reverse_word(char* str) {
int start = 0, end = 0;
int len = strlen(str);
while (end <= len) {
if (str[end] == ' ' || str[end] == '\0') {
reverse_string(str + start);
start = end + 1;
}
end++;
}
reverse_string(str);
}
int main() {
char a[10] = "howare";
reverse_word(a);
cout << a << endl;
return 0;
}
```
输出结果为:
```
erawoh
```
这个函数的具体实现思路是:首先将整个字符串翻转一次,然后再将每个单词翻转一次。在翻转单词的过程中,使用两个指针 start 和 end 来标记一个单词的起始和结束位置,在遇到空格或者字符串结尾的时候,将 start 到 end-1 这段子字符串翻转一次,并将 start 移动到 end+1 的位置。最后将整个字符串再翻转一次,就得到了逆序的字符串。
阅读全文