用c语言编程如下题目:输入一个英文句子(输入句子以回车作为结束,句子长度包括标点符号并且不超过20),翻转句子中单词的顺序,但单词内字符的顺序不变。标点符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出“student.a am I” 输入提示信息:Input Sentence: 输出提示信息:Output Reverse Sentence:
时间: 2024-02-16 18:03:22 浏览: 118
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char sentence[100];
printf("Input Sentence:\n");
fgets(sentence, 100, stdin);
sentence[strlen(sentence)-1] = '\0'; // 去掉换行符
printf("Output Reverse Sentence:");
char *token = strtok(sentence, " ");
char *words[20];
int cnt = 0;
while (token != NULL) {
words[cnt] = token;
cnt++;
token = strtok(NULL, " ");
}
for (int i = cnt-1; i >= 0; i--) {
printf(" %s", words[i]);
}
printf("\n");
return 0;
}
```
这里我们使用了 `fgets` 函数读取输入的字符串,然后使用 `strtok` 函数将字符串按照空格分割成单词,存储在一个字符串数组中。最后再从后往前遍历数组,输出每个单词即可。
阅读全文