競技系プログラミングであるある集
競技系プログラミングをしていてよく忘れるので今回は備忘録編です。
私なんかはstrtok関数あたりをよく忘れてます笑
strtok関数 <string.h>
#include <string.h> でライブラリを読み込んでから使ってね!
空白などの区切り文字を含んだ文字列が入力されて、これを指定文字で分割(split)する
例:a 1 j 3 k (スペースを含んでいる文字列)
gistcb517e11d6034676180a58006fe356f7
ロジック:区切り文字(例えばスペースとかカンマとか)を対象文字列(文字の集まり 例:あい,う eお)の中から探し出し、先頭から順々に区切り文字で区切ってくれる。
例えば上図の様にstrという文字列の中にABCD ef.1234.G¥0
誤解を招かない様に先に述べておくが文字列の最後には文字列の終端を
表すヌル文字(¥0の部分)がもれなくついてくるので気をつけよう。
つまり整理すると今こんな状態を示している。
char str[15] = "ABCD ef.1234.G";
上の図でいうところの四角一個分で1バイト(Byte)の大きさを確保していること
になる。合計で15個あるので15Byteということだ。
¥0は見えないけど含めてあげてね。
参考サイト集
http://www9.plala.or.jp/sgwr-t/lib/strtok.html
記事読みながらすぐ試したい方はコレ便利ですよ