C语言写个编写一个函数,接收一个字符串作为参数,将字符串中的单词进行逆序,并返回逆序后的字符串。
时间: 2024-10-26 18:17:46 浏览: 50
在C语言中,你可以通过以下几个步骤编写一个函数来实现这个功能:
首先,我们需要创建一个名为`reverse_words`的函数,它接受一个指向字符数组的指针作为输入,并假设字符串是以空字符'\0'结尾的。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void reverse_words(char* str);
// 函数实现
void reverse_words(char* str) {
int start = 0; // 用于记录单词开始的位置
int end = 0; // 当前单词结束位置
while (str[end] != '\0') { // 遍历字符串直到找到最后一个字符
if (str[end] == ' ') { // 如果遇到空格,反转从start到end的单词
char temp;
for (int i = start; i < end; ++i, --end) {
temp = str[i];
str[i] = str[end];
str[end] = temp;
}
start = end + 1; // 更新起始位置,跳过空格
} else {
end++; // 如果不是空格,继续检查下一个字符
}
}
// 检查最后一个单词是否需要反转
if (start < end) {
char temp;
for (int i = start; i < end; ++i, --end) {
temp = str[i];
str[i] = str[end];
str[end] = temp;
}
}
}
// 测试函数
int main() {
char str[] = "Hello World This is a test";
printf("Original string: %s\n", str);
reverse_words(str);
printf("Reversed words: %s\n", str);
return 0;
}
```
当你运行这个程序时,会看到原始字符串"Hello World This is a test"中的每个单词都倒序了。
阅读全文