ねこはねこ、とりはとり

毎日の何気ない発見。「気づき」をシェアできたら何よりと思ってブログを開設してみました。

競技系プログラミングであるある集

f:id:yuiswi:20180227143844j:plain

競技系プログラミングをしていてよく忘れるので今回は備忘録編です。

私なんかはstrtok関数あたりをよく忘れてます笑

strtok関数 <string.h>

#include <string.h> でライブラリを読み込んでから使ってね!
空白などの区切り文字を含んだ文字列が入力されて、これを指定文字で分割(split)する

例:a 1 j 3 k (スペースを含んでいる文字列)

gistcb517e11d6034676180a58006fe356f7

 

ロジック:区切り文字(例えばスペースとかカンマとか)を対象文字列(文字の集まり 例:あい,う eお)の中から探し出し、先頭から順々に区切り文字で区切ってくれる。

 

f:id:yuiswi:20180301170514p:plain

例えば上図の様にstrという文字列の中にABCD ef.1234.G¥0

誤解を招かない様に先に述べておくが文字列の最後には文字列の終端

表すヌル文字¥0の部分)がもれなくついてくるので気をつけよう。

つまり整理すると今こんな状態を示している。

char str[15] = "ABCD ef.1234.G";

上の図でいうところの四角一個分で1バイト(Byte)の大きさを確保していること

になる。合計で15個あるので15Byteということだ。

¥0は見えないけど含めてあげてね。

 

 

f:id:yuiswi:20180301170520p:plain

f:id:yuiswi:20180301170526p:plain

f:id:yuiswi:20180301170531p:plain

  

参考サイト集

http://www9.plala.or.jp/sgwr-t/lib/strtok.html

 

記事読みながらすぐ試したい方はコレ便利ですよ

paiza.io