给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。用c语言表示出来
时间: 2024-05-01 18:19:08 浏览: 116
字符串按单词反转算法
以下是一个基于 C 语言的实现:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *s, int start, int end) {
while (start < end) {
char temp = s[start];
s[start] = s[end];
s[end] = temp;
start++;
end--;
}
}
void reverseWords(char *s) {
int start = 0; // 当前单词的起始位置
int end = 0; // 当前单词的结束位置
int len = strlen(s);
while (end <= len) {
if (s[end] == ' ' || s[end] == '\0') {
// 当遇到空格或字符串末尾时,对当前单词进行反转
reverse(s, start, end - 1);
start = end + 1;
}
end++;
}
}
int main() {
char str[] = "hello world";
reverseWords(str);
printf("%s\n", str); // 输出 "olleh dlrow"
return 0;
}
```
该程序中,`reverse` 函数用于反转字符串中某一段的字符顺序,`reverseWords` 函数则用于遍历字符串中的每个单词,并对其进行反转。最终,我们可以得到反转后的字符串。
阅读全文