ABC472 A - A

A

考え方

入力は文字列が $1$ つなので、string 型の変数を $1$ つ用意し、cin で入力を受け取る。

文字列の中身を $1$ 文字ずつ見ていきたいので、forループを用意する。
問題の指示通り、文字列に含まれる A 以外の文字を全て . に変えてしまえばよい。
これは、改めて解答の文字列を作るより、入力を保管した文字列を直接編集するのが楽。

まず、s.size() または ssize(s) で s の長さを取得し、適当に n か何かに保管する。
前から $i$ 文字目を見ているループを以下のように書く。

for (int i=0; i<n; i++) {
  処理
}

処理は、まず、その文字が A ではない、つまり s.at(i)!='A' であるかどうかをif文で判定する。
A でなかった場合には、その文字を . に変える。

ループが終わったら、できた文字を出力すればよい。

入力例1での動作

入力を受け取る。

s: "ATCODER"

文字数は $7$ である。
各文字を前から順に見る。

位置 元の文字 判定・処理 処理後の文字
$1$ A A なので変更しない A
$2$ T A ではないので . に変更 .
$3$ C A ではないので . に変更 .
$4$ O A ではないので . に変更 .
$5$ D A ではないので . に変更 .
$6$ E A ではないので . に変更 .
$7$ R A ではないので . に変更 .

したがって、処理後の s は A...... となるので、これを出力する。

注意点

特になし。

別解

範囲for文と参照渡しを用いると、コードをシンプルに書ける。
ただし、範囲for文はB問題レベル、参照渡しはC問題レベルと、使いこなすには少し高度な知識が必要。