ABC081A Placing Marbles

Placing Marbles

ABC081A Placing Marbles
AtCoder Beginners Selectionより。
0か1の書かれたマスが3つあり、そのうち1の書かれたマスにビー玉が置かれる。
101, 001, 110など、マスの1/0を入力で指定し、ビー玉が置かれるマスはいくつあるかを出力する
という問題です。主に文字列(string)型、文字(char)型の配列の取り扱いを問う問題かな、と思います。
下は提出でACが出た回答ですが、string型の挙動をまだ良く知らなかったのでわざわざchar型のvectorを宣言する必要はなかったかもしれないです。

#include <iostream>
#include <string>
#include <vector>

// geschrieben von Beliar698ma

int main() {
  std::string s;
  std::cin >> s;
  std::vector<char> vec(3);

  for(int i = 0; i < 3; i++) {
    vec.at(i) = s.at(i);
  }

  int count = 0;

  for(int i = 0; i < 3; i++) {
    if (vec.at(i) == '1') count++;
  }

  std::cout << count << "\n";
}

入力例(標準入力)

101
        

出力例(標準出力)

上記の入力では1つ目のマスと3つ目のマスにビー玉が置かれるので、
出力は以下のようになります。
2
        

動作が気になりましたらpaiza.ioなどで上記のコードをテストしてみてください。