描述
? ? ? ? 輸入一個字符串,輸出字符串中單詞的倒序。
要求
- 構成單詞的字符只有26個大寫或小寫英文字母。
- 非構成單詞的字符均視為單詞間隔符;
- 倒排后的單詞間隔符以一個空格表示;如果原字符串中相鄰單詞間有多個間隔符時,倒排轉換后也只允許出現一個空格間隔符
- 每個單詞最長20個字母。
示例1
輸入:I am a student
輸出:student a am I
示例2
輸入:$bo*y gi!r#l
輸出:l r gi y bo
????????C語言:每次輸入指定字符集即一個單詞,將其放入數組中,再進行倒序輸出。
#include <stdio.h>
#include <stdlib.h>
int main() {
? ? char ch[200][30];
? ? int i=0;
? ? while(1)
? ? { ? //輸入指定字符集即大小寫字母
? ? ? ? scanf("%[a-z|A-Z]",ch[i]);
? ? ? ? if(getchar()=='\n')
? ? ? ? break;
? ? ? ? i++;
? ? }
? ? for(int j=i;j>=0;j--)
? ? {
? ? ? ? printf("%s ",ch[j]);
? ? }
? ? return 0;
}
? ? ? ? Java:以非大小寫字母為分隔符,將輸入的整個字符串進行分割,將分割得到的字符串數組即單詞數組倒序存入新字符串中,新字符串每兩個單詞中間有一個空格,打印新字符串。
import java.util.Scanner;
public class Main {
? ? public static void main(String[] args) {?
? ? ? ? Scanner in = new Scanner(System.in);
? ? ? ? String str=in.nextLine();
? ? ? ? //以非大小字母的字符為分隔符
? ? ? ? String[] words=str.split("[^a-zA-Z]");
? ? ? ? StringBuilder str1=new StringBuilder();
? ? ? ? for(int i=words.length-1;i>=0;i++)
? ? ? ? {
? ? ? ? ? ? str1.append(words[i]);
? ? ? ? ? ? if(i!=0)
? ? ? ? ? ? str1.append(" ");
? ? ? ? }
? ? ? ? System.out.println(str1.toString());
? ? }
}