PTA 7-195ジャーナルタイトルの省略(10ポイント)

7-195ジャーナル名の省略形(10点)
研究者はしばしば異なるジャーナルに原稿を投稿します。ただし、異なるジャーナルのレファレンスの形式はしばしば異なります。一部のジャーナルでは、レファレンスに掲載されているジャーナルの名前を省略形にする必要があります。そうしないと、原稿が直接拒否されます。特定のジャーナル名については、次の規則に従って短縮する必要があります。(1)長さが4以下の単語は短縮する必要はありません。(2)長さが4を超える単語は、最初の4文字ですが、その後に「。」を追加します。(3)すべての文字は小文字です。

入力形式:
最初に正の整数Tを入力します。これは、テストデータグループの数を意味し、次にTグループのテストデータを入力します。テストごとに、大文字と小文字、およびスペースを含む文字列を入力します(長さは85を超えません)。単語は複数の文字で構成され、単語はスペースで区切られます。

出力形式:
テストのグループごとに、単語の間にスペースを入れて、省略された結果を1行に出力します。

入力サンプル:
1
アドホックネットワーク
出力サンプル:アドホックネットワーク

#include<bits/stdc++.h>
using namespace std;
int main() {
    
    
	int t;
	cin>>t;
	getchar();
	while (t--) {
    
    
		string s;
		getline(cin,s);
		s+=' ';
		int slen=s.size();
		int p=0;
		for(int i=0;i<slen;i++)if(s[i]>='A'&&s[i]<='Z')s[i]+='a'-'A';
		
		for(int i=0;i<slen;i++){
    
    
			if(s[i]==' '){
    
    
				string g=s.substr(p,i-p);
				if(g.size()>4){
    
    
					cout<<g.substr(0,4)<<".";
					if(i!=slen-1)cout<<" ";
				}
				else {
    
    
					cout<<g<<" ";
				}
				p=i+1;
			}
			
		}
		cout<<endl; 
	}
}

おすすめ

転載: blog.csdn.net/Minelois/article/details/113208583