输入一句英语,编写程序,利用指针将句中所有单词的顺序颠倒输出。输入为在一行内总长度不超过80的字符串,该字符串由若干单词组成,假设其中单词是由英文字母组成的字符串,单词之间用1个空格分开,输入保证句子末
时间: 2024-03-13 22:43:05 浏览: 132
输入一句英语,编写程序,利用指针将句中所有单词的顺序颠倒输出。
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *begin, char *end);
int main()
{
char str[81];
fgets(str, 81, stdin);
int len = strlen(str);
if (str[len - 1] == '\n') {
str[len - 1] = '\0';
len--;
}
char *begin = str;
char *end = str + len - 1;
reverse(begin, end);
char *p = str;
while (*p) {
char *q = p;
while (*q != ' ' && *q != '\0') {
q++;
}
reverse(p, q - 1);
p = q + 1;
}
printf("%s\n", str);
return 0;
}
void reverse(char *begin, char *end)
{
while (begin < end) {
char temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
}
```
输入样例:
```
Hello world! How are you?
```
输出样例:
```
you? are How world! Hello
```
阅读全文