c语言将一句话的单词进行倒置标点不倒置
时间: 2024-02-05 18:12:38 浏览: 157
判断字符串中的单词个数
4星 · 用户满意度95%
以下是一个简单的C语言程序,可以将输入的一句话的单词进行倒置,但标点不会倒置。需要注意的是,该程序仅适用于英文单词,对于其他语言可能需要进行适当的修改。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
void reverseWords(char *str);
int main()
{
char str[MAX_LEN];
printf("Enter a sentence: ");
fgets(str, MAX_LEN, stdin);
reverseWords(str);
printf("Reversed sentence: %s", str);
return 0;
}
void reverseWords(char *str)
{
// Reverse the entire string
strrev(str);
char *start = str;
char *end = str;
while (*end != '\0')
{
// Find the start of the next word
while (*end != ' ' && *end != '\0')
{
end++;
}
// Reverse the current word
strrev(start);
// Move the start pointer to the next word
start = end + 1;
// Move the end pointer to the start of the next word
end = start;
}
}
```
该程序中使用了 `strrev()` 函数来翻转字符串,该函数在一些编译器中可能不存在,需要自行实现。在 Windows 平台上,可以使用 `<string.h>` 中的 `_strrev()` 函数代替。
阅读全文