【競プロ精進ログ】APG4b編<1-12>

zuka

ついに競技プログラミングを始めました!

本記事は,管理人の競技プロ精進日記としてログを取ったものです。モチベーションを爆上げするために積極的にアウトプットしていく作戦です。これから競技プログラミングを始めようと考えている人や,なんとなく敷居が高いと感じている人の参考になれば嬉しく思います。その他の記事は以下をご覧ください。

目次

本記事の概要

Atcoderが公表しているc++の入門記事の内容を1からさらっていくものです。今回は1.12.文字列と文字です。

実装

#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;

int main() {
  string s;
  int ans = 1;
  cin >> s;

  // 文字列の長さだけ繰り返す
  rep(i, s.size()){
    // もしiインデックスが'+'であれば
    if (s[i]=='+')
    // ansをインクリメント
    ans++;

    // もしiインデックスが'-'であれば
    else if (s[i]=='-')
    // ansをデクリメント
    ans--;
  }

// 解答出力
cout << ans << endl;
}

ポイント

今回おさえるべき内容

 文字はchar型で'' ,文字列はstring型で""

 文字列の大きさは文字列.size()で取得でき[]を利用して要素にアクセスできる

 文字列(文字)を+すると連結される

競技プログラミングでは避けては通れないのが文字列(文字)の操作です。特に最初は,1つの文字を扱うchar型と複数の文字を扱うstring型を区別して理解する必要があります。char型は''で表し,string型は""で表します。pythonでは両方とも""で表してしまうので,ついつい間違えてタイプしがちなので要注意です。

文字列の大きさは文字列.size()を利用すれば取得できます。forループの範囲などでよく利用されます。また,文字列の各要素には[]を用いてアクセスすることができます。この際,文字列の大きさを超える添字を指定した場合にはエラーを吐いてしまうので気を付けてください。

文字列同士の演算も定義されています。整数型同士であれば小学校で習ったような演算をしてくれるのですが,文字列同士を足し算した場合には文字列が繋がります。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次