C言語で文字列の単語を逆順に出力する方法は何ですか。

C言語の文字列内の単語を逆順に出力するには、次の手順に従うことができます。

  1. ワードを逆にする
  2. strtokを日本語で表現すると、文字列を指定した区切り文字で分割する関数です。
  3. 単語の数を計算します。
  4. 各単語をループして逆順に出力する。

以下是一段示例代码:

#include <stdio.h>
#include <string.h>

void reverse_words(char str[]) {
    char *token;
    char *words[100]; // 假设最多有100个单词
    int count = 0;
    
    // 使用strtok函数分割字符串并将每个单词存储在数组中
    token = strtok(str, " ");
    while (token != NULL) {
        words[count] = token;
        count++;
        token = strtok(NULL, " ");
    }
    
    // 倒序输出每个单词
    for (int i = count - 1; i >= 0; i--) {
        printf("%s ", words[i]);
    }
}

int main() {
    char str[] = "Hello World, I am a student.";
    reverse_words(str);
    
    return 0;
}

結果は出力されます。

student. a am I World, Hello 
bannerAds