描述
输入一个字符串,输出字符串中单词的倒序。
要求
- 构成单词的字符只有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()); } }