srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

SRM 698 div2 easy Initials

問題

問題概要

スペース入りのアルファベットンの文が与えられるので、単語ごとの頭文字をとり、それをつなげたものを表示する問題。

解法

まず、name[0]は必ず、頭文字になる。そのあとは、スペースのあとの文字が必ず頭文字になるので、スペースのあとの文字列を答えに出力すればいい。

ミス

すんなり行けた。 今回は2完。

コード

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)

class Initials {
public:
    string ans;
    bool flag = false;
    string getInitials(string name){
        rep(i, name.size()){
            if(i == 0)ans += name[i];
            else{
                if(name[i] == ' ') flag = true;
                else if(name[i] != ' ' && flag){
                    ans += name[i];
                    flag = false;
                }
            }
        }
        return ans;
    }
};