説明する
文字列を入力し、文字列内の単語を逆順に出力します。
必要とする
- 単語を構成する文字は、英大文字または小文字 26 文字のみです。
- 単語を構成しない文字は単語の区切り文字とみなされます。
- 反転された単語の区切り文字はスペースで表されます。元の文字列の隣接する単語の間に複数のスペーサがある場合、反転された変換後に使用できるスペース区切り文字は 1 つだけです。
- 各単語の長さは最大 20 文字です。
例1
入力: 私は学生です
出力: 学生です 私は学生です
例 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;
その間(1)
{ //指定された文字セット、つまり大文字と小文字を入力します
scanf("%[az|AZ]",ch[i]);
if(getchar()=='\n')
壊す;
i++;
}
for(int j=i;j>=0;j--)
{
printf("%s ",ch[j]);
}
0を返します。
}
Java :大文字と小文字を区別しない文字を区切り文字として使用して入力文字列全体を分割し、分割された文字列配列、つまり単語配列を新しい文字列に逆順で格納します。新しい文字列内の 2 つの単語ごとにスペースが入ります。 . 新しい文字列を出力します。
java.util.Scannerをインポートします。
パブリッククラス Main {
public static void main(String[] args) {
スキャナー in = 新しいスキャナー(System.in);
文字列 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(単語[i]);
if(i!=0)
str1.append(" ");
}
System.out.println(str1.toString());
}
}