https://atcoder.jp/contests/abc115/tasks/abc115_a
の問題を解いておりましたところ、C++の文法について、わからないことがございましたのでご教授いただければと思います。
#include <iostream> #include <string> using namespace std; string solve(int x) { string a("eve"); string b = ""; for (int i = 0; i < 25-x; i++) { string b += a; //bにの末尾にaをn回足す、という操作が書けない } return b; } int main() { int n; cin >> n; string ans = solve(n); cout << "Christmas" << ans << endl; return 0; }
としたところ、ローカル環境で
test96.cpp: In function 'std::__cxx11::string solve(int)':
test96.cpp:11:18: error: expected initializer before '+=' token
string b += a; //bにの末尾にaをn回足す、という操作が書けない
^~
となりました。変数bにの末尾に変数aをn回足して変数bに格納する(格納されるデータはstring型)という操作を記述するとしたら、どのような書き方があるのでしょうか。あるいはstring型にこだわらない方がいいのでしょうか。
なお、問題自体は
#include <iostream> #include <string> using namespace std; int main() { int n; cin >> n; cout << "Christmas" ; for(int i=0; i<25-n;i++){ cout << "Eve"; } cout << endl; return 0; }
とすれば良いことは他の方の提出から理解できまして、上記問題を回答する上で本質問の知識は必要ないことはわかったのですが、気になってしまい、質問させていただきました。どうぞよろしくお願いいたします。
なお、ローカル環境とはなお、ローカル環境とは、mac OS High Sierra10.13.6
コンパイラは
Apple LLVM version 10.0.0 (clang-1000.10.44.4)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
になります。デフォルトのC++14で、コンパイルしました。
VSCodeを使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/31 12:27
2019/01/31 13:08
2019/01/31 14:05