反转字符串中的单词 c语言代码
时间: 2024-12-20 17:24:24 浏览: 13
在C语言中,反转字符串中的单词可以分为两个步骤:首先,我们需要将整个字符串反转;然后,对于每个单词,我们再次反转它。下面是一个简单的C语言函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于反转整个字符串
void reverse(char str[], int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
// 函数用于反转单个单词
void reverseWords(char* str) {
// 获取字符串长度
int len = strlen(str);
// 遍历字符串,处理单词边界
for (int i = 0, j = 0; i <= len; ++i) {
if (str[i] == ' ' || str[i] == '\0') { // 当遇到空格或字符串结束
reverse(&str[j], j, i - 1); // 反转当前单词
j = i + 1; // 更新开始位置
}
}
// 如果最后一个单词的末尾没有空格,需要额外反转一次
if (j < len) {
reverse(&str[j], j, len - 1);
}
}
int main() {
char input[100];
printf("Enter a sentence: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除fgets获取的换行符
reverseWords(input);
printf("Reversed words: %s\n", input);
return 0;
}
```
阅读全文