题目描述
编写程序,让用户从键盘输入一个包含多个单词的英文句子,程序将这个句子中的单词反序打印输出,但单词本身不反序。
例如,用户输入I am a student,程序打印出student a am I。
案例代码
#include <stdio.h>
#include <string.h>
void reversePrintSentence(char* sentence) {
int len = strlen(sentence);
char* words[len];
int wordCount = 0;
// 提取句子中的单词
char* word = strtok(sentence, " ");
while (word != NULL) {
words[wordCount++] = word;
word = strtok(NULL, " ");
}
// 逆序打印单词
for (int i = wordCount - 1; i >= 0; i--) {
printf("%s ", words[i]);
}
printf("\n");
}
int main() {
char sentence[100];
printf("请输入一个英文句子:\n");
fgets(sentence, sizeof(sentence), stdin);
sentence[strlen(sentence) - 1] = '\0'; // 去掉换行符
printf("反序打印句子中的单词:\n");
reversePrintSentence(sentence);
return 0;
}
在程序中,我们首先定义了一个reversePrintSentence
函数,它接受一个英文句子作为参数,并将句子中的单词逆序打印出来。该函数的实现过程如下:
- 首先获取句子的长度,用来定义一个字符串数组
words
,该数组用来存储句子中的单词。 - 利用
strtok
函数和空格作为分隔符,提取句子中的单词,并将它们存储到words
数组中。 - 使用一个循环,从最后一个单词开始逆序打印
words
数组中的单词。
然后,在main
函数中,我们首先提示用户输入一个英文句子,并使用fgets
函数获取用户输入的句子。然后,我们去掉输入句子末尾的换行符,并调用reversePrintSentence
函数来反序打印句子中的单词。
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END