文字 char型
※最大255種類 全角は非対応char c; char c = 'a';
ちょこっとメモ
wchar_t型 ワイド(2バイト)文字
#include <wchar.h>、#include <stdlib.h> が必要全角対応。
char16_t型、char32_t型
#include <uchar.h> が必要全角対応。
マルチ文字列→ワイド文字列の変換
mbstowcs(ワイド文字列, マルチ文字列, ワイド文字数)※文字列の変換には、ロケール setlocale()に依存
マルチ文字列←ワイド文字列の変換
wcstombs(マルチ文字列, ワイド文字列, マルチ文字数)※文字列の変換には、ロケール setlocale()に依存
ロケール setlocale()
#include <locale.h>setlocale( LC_CTYPE, "jpn" )を設定する
文字型で計算 文字コード操作
英小文字↔英大文字 相互変換
英大文字 = 英小文字 - 0x20
英小文字 = 英大文字 + 0x20
char c = 'a' - 0x20; printf("%c\n", c); ←「英小文字→大文字」に変換 char C = 'A' + 0x20; printf("%c=%d\n",s + 0x30, s + 0x30); ←「英大文字→小文字」に変換
表示イメージ
A ←英大文字
a ←英小文字
a ←英小文字
数値↔文字コード 相互変換
文字コード = 数字 - 0x30 ※’0’=0x30
数値 = 文字コード + 0x30
char c = '8'; ←数字(文字列) printf("%d\n",c - 0x30); ←「数字(文字列)→文字コード」に変換 char s = 0x8; ←文字コード char kazu = s + 0x30; ←「文字コード→数字(文字列)」に変換 printf("%c = %x\n", kazu , kazu);
表示イメージ
8 ←文字コード
8 = 38 ←数字(文字列):8=0x38
8 = 38 ←数字(文字列):8=0x38
文字種類判定関数
#include <ctype.h> すること。名前 | 文字種類 | 文字一覧 |
---|---|---|
isalnum(判定文字) | 英大小数 | A~Z a~z 0~9 |
isdigit(判定文字) | 10進数 | 0~9 |
isxdigit(判定文字) | 16進数 | A~F a~f 0~9 |
isalpha(判定文字) | 英大小 | A~Z a~z |
isupper(判定文字) | 英大文 | A~Z |
islower(判定文字) | 英小文 | a~z |
ispunct(判定文字) | 記号 | |
isspace(判定文字) | スペース |