問題:ABC 085 A - Already 2018 (AtCoder に登録したら次にやること 第02問類題)
問題文
$2018$ 年 $1$ 月某日、高木さんは書類を書いています。書類には、その日の日付を yyyy/mm/dd という形式で書き込む欄があります。例えば、$2018$ 年 $1$ 月 $23$ 日は 2018/01/23 となります。
書類を書き終えたあと、高木さんは日付欄の先頭に誤って 2017 と書いてしまっていたことに気がつきました。高木さんが日付欄に書いた文字列 $S$ を入力すると、$S$ の先頭の $4$ 文字を 2018 に修正して出力するプログラムを書いてください。
制約
・$S$ は長さ $10$ の文字列である。
・$S$ の先頭の $8$ 文字は 2017/01/ である。
・$S$ の末尾の $2$ 文字は数字であり、$1$ 以上 $31$ 以下の整数を表す。
回答 (AC)
日付を表す文字列 $S$ を変数 s で受け取り、はじめから 4 文字目の '7' を '8' に書き換えて出力すれば良いでしょう。コードは以下のようになりました。
abc085a.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
s.at(3)='8';
cout << s << endl;
}
調べたこと
AtCoder の解説 → ユーザ解説
回答と同じ方針でした。
AtCoder の解説 → コンテスト全体の解説
回答と同じ方針でした。C++では文字列を書き換えられるので、簡単な問題なのでした。
学んだこと
- 文字列の参照・書き換え (a.at(*))
リンク
- 前の記事 → AtCoderログ:0011 - ABC 095 A
- 次の記事 → AtCoderログ:0013 - ABC 209 に参加しました