7K12 blog

猫でも分かるアルゴリズム解説

文字インデックス変換 LIB::CharIndex

LIB::CharIndex

文字からインデックス (0-index) を取得する
アルファベットは26文字なので a=0 から z=25 のインデックスが得られる

関数定義
  • ll ascii(char c): アスキーコードを取得
  • ll i_abc(char c): 小文字のインデックスを取得
  • ll i_ABC(char c): 大文字のインデックスを取得
  • ll i_012(char c): char数字のインデックスを取得
  • char c_abc(ll i): インデックスを指定して小文字を取得
  • char c_ABC(ll i): インデックスを指定して大文字を取得
  • char c_012(ll i): : インデックスを指定してchar数字を取得
#include <bits/stdc++.h>

namespace LIB
{
	struct CharIndex  {
		using ll = long long;
		ll ascii(char c) { return ll(c); }
		ll i_abc(char c) { return ll(c - 'a'); }
		ll i_ABC(char c) { return ll(c - 'A'); }
		ll i_012(char c) { return ll(c - '0'); }
		char c_abc(ll i) { return char('a' + i); }
		char c_ABC(ll i) { return char('A' + i); }
		char c_012(ll i) { return char('0' + i); }
	};
}
how to use
int main() {
	CharIndex ci;
	cout << ci.i_abc('a') << ci.i_abc('b') << ci.i_abc('c');
	cout << endl;
	cout << ci.c_abc(0) << ci.c_abc(1) << ci.c_abc(2);
	return 0;
}
012
abc
実装例