【C++】コーディングの問題を解く時とかに見るやつ【自分用】
自分向けのコーディングテストで使える関数とか問題の解き方とかそういうやつ。困ったらこれを見ろ。見てわからんかったら試合終了(泣)。
得意な言語とか無いし触ったことあるからとりあえずC++で。
間違えてるところとか解釈が変なところもあるかもしれないけどご愛敬。
今はStringを使う問題を解くことが多いので忘れたくないStringの使い方メモみたいになっている随時更新
Sting(すとりんぐ)
文字列を扱えるようになる。いろいろできる。
#include <string>
using namespace std;
int main(){
string str1 = "mojiretsu";
string str2(10, 'a'); // 文字数10のa "aaaaaaaaaa"
string str3("abc");
str4 = "12" + str3; // つなげたりできる
cout << "str1 = " << str1 << endl;
cout << "str2 = " << str2 << endl;
cout << "str3 = " << str3 << endl;
cout << "str4 = " << str4 << endl;
}
// 出力
str1 = mojiretsu
str2 = aaaaaaaaaa
str3 = abc
str4 = 12abc
標準入出力
最初の行で後に入力される行数を指定されたあと入力された文字とか数字とかをいじいじするタイプの問題の時に使える。
すべての問題で必ず使うことになる。避けては通れない。
// 入力:最初の行でその後入力される行数を表すとする
2
a b c
d e f
#include <iostream>
#include <string>
using namespace std;
// C++を使うときのおまじない、言語選ぶと大体用意されている
int main(void){
int n;
string str1, str2, str3;
cin >> n;
// 1回 cin で1行読み込まれる、次は2行目から読み込まれる
for(int i = 0; i < n; i++) {
cin >> str1 >> str2 >> str3;
// 2行目から3つずつそれぞれstr1,2,3に入れていく
cout << "str1 = " << str1 << " , str2 = " << str2 << " , str3 = " << str3 << endl;
// str1,2,3を出力、改行はendl
}
// これをn回(n行)繰り返す
return 0;
}
// 出力:n=2なので2行
str1 = a , str2 = b , str3 = c
str1 = d , str2 = e , str3 = f
length()(れんぐす)
stringの長さ(文字数)を返してくれるすごいやつ。文字数カウントしないといけないときとか、文字数でソートしたりするときなどいろんな場面で使える。便利!
これによく似たsize()もあるけどまだよくわかっていない。(Vectorに使えるかどうかみたいな解釈)
string str = "abcdefghi"; // 9文字
int n = 0;
n = str.length();
// stringの後ろに.でくっつけて使う
cout << "n = " << n << endl;
// 出力
n = 9
String型は文字列の任意の文字を指定できる
これを使うと特定の文字だけ入れ替えたり消したり追加したりできる。
Leat文字とかそういうジャンル(?)
string str = "abc";
str[3] = 'z';
cout << str[1] << endl;
cout << str[2] << endl;
cout << str[3] << endl;
// 出力
a
b
z