整数としての文字
ASCII 値です。
「整数としての文字」はCoddyKit上の無料C Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全4レッスンが含まれています。
文字は数値
Cでは、charは単なる小さな整数です。すべての文字にはASCII表で定義された数値があります。
文字'A'は数値65として格納され、'B'は66、その後も順に続きます。
#include <stdio.h>
int main(void) {
char c = 'A';
printf("The character %c has value %d\n", c, c);
return 0;
}ASCII値の表示
%d書式指定子を使うとcharを整数値として表示でき、%cを使うと文字として表示できます。
同じ変数を両方の方法で扱えます。
#include <stdio.h>
int main(void) {
char letter = 'z';
printf("As char: %c\n", letter);
printf("As int: %d\n", letter);
return 0;
}数字にもコードがある
文字'0'は数値の0ではありません。ASCII値は48です。
数字の文字'0'から'9'までは、48から57のコードに順番に割り当てられています。
#include <stdio.h>
int main(void) {
printf("'0' = %d\n", '0');
printf("'9' = %d\n", '9');
return 0;
}charから数字への変換
数字の文字は連続しているため、'0'を引くことで数字の文字を数値へ変換できます。
'7' - '0'は7になります。
#include <stdio.h>
int main(void) {
char d = '7';
int value = d - '0';
printf("The digit value is %d\n", value);
return 0;
}文字の算術演算
char は整数なので、文字に対して計算できます。'A' に 1 を足すと、'B' のコードになります。
これは、ASCII ではアルファベットの文字が連続しているためです。
#include <stdio.h>
int main(void) {
char c = 'A';
char next = c + 1;
printf("After A comes %c\n", next);
return 0;
}アルファベットをループする
char をループカウンターとして使い、'a' から 'z' までループできます。
このループでは、数値の場合と同じように文字コードを比較します。
#include <stdio.h>
int main(void) {
for (char c = 'a'; c <= 'z'; c++) {
printf("%c", c);
}
printf("\n");
return 0;
}大文字と小文字の差
ASCII では、大文字と小文字の間隔は 32 です。'a' は 97、'A' は 65 です。
したがって、'a' - 'A' は 32 になります。
#include <stdio.h>
int main(void) {
printf("'A' = %d\n", 'A');
printf("'a' = %d\n", 'a');
printf("Gap = %d\n", 'a' - 'A');
return 0;
}手動で大文字・小文字を変換する
差が 32 であることが分かれば、小文字から大文字へは 32 を引いて変換できます。
これは、toupper が内部で行っている処理そのものです。
#include <stdio.h>
int main(void) {
char lower = 'm';
char upper = lower - 32;
printf("%c becomes %c\n", lower, upper);
return 0;
}特殊文字
制御文字にもコードがあります。改行の '\n' は 10、タブの '\t' は 9、ヌル終端文字の '\0' は 0 です。
スペース文字は 32 です。
#include <stdio.h>
int main(void) {
printf("newline = %d\n", '\n');
printf("tab = %d\n", '\t');
printf("space = %d\n", ' ');
return 0;
}char で小さな数値を扱う
char は通常、符号付きの場合は -128 から 127、符号なしの場合は 0 から 255 の値を保持します。
小さな整数を char に直接格納できます。
#include <stdio.h>
int main(void) {
char small = 100;
small = small + 5;
printf("small = %d\n", small);
return 0;
}Caesar シフトを作る
これらの考え方を組み合わせると、単純な Caesar 暗号では、文字の算術演算を使って各文字を一定量ずつシフトできます。
ここでは、各文字を 3 つ先へシフトします。
#include <stdio.h>
int main(void) {
char c = 'x';
char shifted = 'a' + (c - 'a' + 3) % 26;
printf("%c shifted by 3 = %c\n", c, shifted);
return 0;
}確認問題
文字を整数として扱う方法を理解できているか確認しましょう。
まとめ
C では、次のことを学びました。
charは ASCII コードを保持する小さな整数です。%cは文字として、%dは数値として出力します。- 数字
'0'~'9'とアルファベットは連続しているため、算術演算を利用できます。 c - '0'で数字の char を値に変換でき、大文字と小文字の差は 32 です。
よくある質問
「整数としての文字」レッスンは無料ですか?
はい。「整数としての文字」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全4レッスンが含まれています。
「整数としての文字」で何を学びますか?
ASCII 値です。 ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「整数としての文字」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC Academyレッスンでコードを書いて実行できますか?
はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 整数としての文字
- ctype ライブラリ
- 文字の読み取り
- 文字ユーティリティの作成