ししちにじゅうはち 4x7=28

よんたったー https://twitter.com/keita44_f4

C言語で非アスキー文字を使う方法

諸事情でArduinoを使っています。
さらにArduino ROBOTO LCDを組み合わせています。
さてこのLCDアスキー文字を表示できますが、実はアスキー外にも文字が定義されています。
その中で-9(unsignedだと247)*1を含んだ文字列を表示する方法で困ったのでまとめます。

無理やりキャストする

できるけどさっぱりクールじゃない。
コードも読みづらいです。

char* s = "a";
char[0] = (char)(-9);

16進数を使う

にあるように16進数の\xNNNNで指定できます。
ただしchar1文字しか使わないならN2文字で区切る必要があります。

char* s = "\xf7";

8進数を使う

なかなか使う機会がないけど\NNNで8進が使えましたね!

char* s = "\367";

まとめ

C難しい

*1:-9は上付き丸に割り当てており、℃を二文字使って表せる