@applejxd

雑記帳

競技プログラミング Tips

目次

リンク

リソース関連

文字列処理

char と int 間の変換は ASCII コードのオフセットを利用して実施。

int num_int = 5;
// '5' = 5 + 48
char num_char = num_int + '0';

num_char = '5';
// 5 = '5' - 48
num_int = num_char - '0';

文字・文字列の宣言には注意。 シングルクォーテーションで囲まれた文字は文字リテラルとして認識される。 ダブルクォーテーションで囲まれた文字・文字列はそのリテラルが格納された文字列の先頭アドレスになる。

// そのまま文字リテラルとして認識
char num_char = '8';
// 137 という文字列型の先頭アドレスを指す
std::string num_string = "137";

正規表現にはstd::regexを利用。

std::regex re("[0-9]");
// 文字リテラルの判定であればシングルクォーテーションでリテラル表記
bool is_match = std::regex('8', re);