使用c语言编写:Write a Program that reverses the words in a sentence. Enter a sentence: you can cage a swallow can’t you? Reversal of sentence: you can’t swallow a cage can you?
时间: 2024-02-13 22:02:44 浏览: 186
以下是使用C语言编写的程序,可以将输入的句子中的单词顺序翻转:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int main() {
char sentence[MAX_LEN];
printf("Enter a sentence: ");
fgets(sentence, MAX_LEN, stdin);
int len = strlen(sentence);
if (len > 0 && sentence[len - 1] == '\n') {
// 去掉fgets读入的换行符
sentence[len - 1] = '\0';
}
char *word, *saveptr;
char *reversed_sentence = "";
// 使用strtok函数将句子按照空格分割成单词
word = strtok_r(sentence, " ", &saveptr);
while (word != NULL) {
// 将每个单词插入到结果字符串的开头
char tmp[MAX_LEN];
sprintf(tmp, "%s ", word);
strcat(tmp, reversed_sentence);
reversed_sentence = tmp;
word = strtok_r(NULL, " ", &saveptr);
}
// 去掉最后一个空格
reversed_sentence[strlen(reversed_sentence) - 1] = '\0';
printf("Reversal of sentence: %s\n", reversed_sentence);
return 0;
}
```
该程序使用fgets函数从标准输入中读取一个句子,然后使用strtok_r函数将句子按照空格分割成单词。之后,程序将每个单词插入到结果字符串的开头,最终得到一个单词顺序翻转后的句子。注意,最后一个单词后面不应该有空格,因此需要手动去掉结果字符串的最后一个字符。
阅读全文