けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 291 A - camel Case (8Q, 灰色, 100 点)

線形探索法の応用!

問題概要

英文字からなる文字列  S が与えられる。

この文字列  S には、1 個だけ英大文字があり、残りはすべて英小文字である。

この英大文字が先頭から何番目の文字であるかを求めよ。

考えたこと

for 文を用いて、各  i に対して、文字 S[i] が英大文字であるかどうかを判定していき、英大文字であるような  i を答えれば良い。

なお、C++ では文字列の先頭の文字を 0 番目とみなすことに注意しよう。つまり、for 文を用いて S[i] が英大文字であるような i を見つけたとき、i+1 の値を答えれば良い。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    string S;
    cin >> S;
    for (int i = 0; i < S.size(); i++) {
        if (isupper(S[i])) {
            cout << i+1 << endl;
            return 0;
        }
    }
}