c语言实现句子反向,但单词不反向的案例代码

题目描述

编写程序,让用户从键盘输入一个包含多个单词的英文句子,程序将这个句子中的单词反序打印输出,但单词本身不反序。

例如,用户输入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函数,它接受一个英文句子作为参数,并将句子中的单词逆序打印出来。该函数的实现过程如下:

  1. 首先获取句子的长度,用来定义一个字符串数组words,该数组用来存储句子中的单词。
  2. 利用strtok函数和空格作为分隔符,提取句子中的单词,并将它们存储到words数组中。
  3. 使用一个循环,从最后一个单词开始逆序打印words数组中的单词。

然后,在main函数中,我们首先提示用户输入一个英文句子,并使用fgets函数获取用户输入的句子。然后,我们去掉输入句子末尾的换行符,并调用reversePrintSentence函数来反序打印句子中的单词。

运行截图

图片[1]-c语言实现句子反向,但单词不反向的案例代码-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享