C言語/標準ライブラリ/文字操作

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

概要[編集]

文字操作の関数を使用するためには、 ctype.hというヘッダファイルを組み込む必要がある。 [1]

次に文字操作の関数を表にまとめた。

形式 機能
文字種分類関数 文字が以下のとき真、それ以外の時は偽を返す。
int isalnum(int c); 英数字('A'~'Z', 'a'~'z', '0'~'9')
int isalpha(int c); 英文字('A'~'Z', 'a'~'z')
int isblank(int c); 標準ブランク文字(' ', "\t")
int iscntrl(int c); 制御文字(0x00~0x1f, 0x7f)
int isdigit(int c); 数字('0'~'9')
int isgraph(int c); 空白(' ')を除く表示文字(0x21~0x7e)
int islower(int c); 英小文字('a'~'z')
int isprint(int c); 空白(' ')を含む表示文字(0x20~0x7e)
int ispunct(int c); 区切り文字(0x21~0x2f, 0x3a~0x40, 0x5b~0x60, 0x7b~0x7e)
int isspace(int c); 標準空白類文字(' ', '\f', '\n', '\r', '\t', '\v')
int isupper(int c); 英大文字('A'~'Z')
int isxdigit(int c); 16進数字('0'~'9', 'A'~'F', 'a'~'f')
大文字小文字変換関数
int tolower(int c); 文字cを小文字に変換した値を返す。
int toupper(int c); 文字cを大文字に変換した値を返す。

文字種分類関数[編集]

[2]

isalnum関数[編集]

  • 形式
#include <ctype.h>
int isalnum(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが英数字('A'~'Z', 'a'~'z', '0'~'9')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isalnum(c))
		printf("%cは英数字です。", c);
	else
		printf("%cは英数字ではありません。", c);
	
}

isalpha関数[編集]

  • 形式
#include <ctype.h>
int isalpha(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが英文字('A'~'Z', 'a'~'z')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isalpha(c))
		printf("%cは英文字です。", c);
	else
		printf("%cは英文字ではありません。", c);
	
}

isblank関数[編集]

  • 形式
#include <ctype.h>
int isblank(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが標準ブランク文字(' ', "\t")の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isblank(c))
		printf("%cは標準ブランク文字です。", c);
	else
		printf("%cは標準ブランク文字ではありません。", c);
	
}

iscntrl関数[編集]

  • 形式
#include <ctype.h>
int iscntrl(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが制御文字(0x00~0x1f, 0x7f)の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isctrl(c))
		printf("%cは制御文字です。", c);
	else
		printf("%cは制御文字ではありません。", c);
	
}

isdigit関数[編集]

  • 形式
#include <ctype.h>
int isdigit(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが数字('0'~'9')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isdigit(c))
		printf("%cは数字です。", c);
	else
		printf("%cは数字ではありません。", c);
	
}

isgraph関数[編集]

  • 形式
#include <ctype.h>
int isgraph(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが空白(' ')を除く表示文字(0x21~0x7e)の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isgraph(c))
		printf("%cは表示文字(空白を除く)です。", c);
	else
		printf("%cは表示文字(空白を除く)ではありません。", c);
	
}

islower関数[編集]

  • 形式
#include <ctype.h>
int islower(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが英小文字('a'~'z')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(islower(c))
		printf("%cは英小文字です。", c);
	else
		printf("%cは英小文字ではありません。", c);
	
}

isprint関数[編集]

  • 形式
#include <ctype.h>
int isprint(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが空白(' ')を含む表示文字(0x20~0x7e)の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isprint(c))
		printf("%cは表示文字(空白を含む)です。", c);
	else
		printf("%cは表示文字(空白を含む)ではありません。", c);
	
}

ispunct関数[編集]

  • 形式
#include <ctype.h>
int ispunct(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが区切り文字(0x21~0x2f, 0x3a~0x40, 0x5b~0x60, 0x7b~0x7e)の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(ispunct(c))
		printf("%cは区切り文字です。", c);
	else
		printf("%cは区切り文字ではありません。", c);
	
}

isspace関数[編集]

  • 形式
#include <ctype.h>
int isspace(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが標準空白類文字(' ', '\f', '\n', '\r', '\t', '\v')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isspace(c))
		printf("%cは標準空白類文字です。", c);
	else
		printf("%cは標準空白類文字ではありません。", c);
	
}

isupper関数[編集]

  • 形式
#include <ctype.h>
int isupper(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが英大文字('A'~'Z')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isupper(c))
		printf("%cは英大文字です。", c);
	else
		printf("%cは英大文字ではありません。", c);
	
}

isxdigit関数[編集]

  • 形式
#include <ctype.h>
int isxdigit(int c);
  • 引数
c 判定する文字
  • 返却値
判定の結果
  • 機能
文字cが16進数字('0'~'9', 'A'~'F', 'a'~'f')の場合真(0以外の値)を返し、それ以外の場合偽(0)を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	if(isxdigit(c))
		printf("%cは16進数字です。", c);
	else
		printf("%cは16進数字ではありません。", c);
	
}

大文字小文字変換関数[編集]

[3]

tolower関数[編集]

  • 形式
#include <ctype.h>
int tolower(int c);
  • 引数
c 変換する文字
  • 返却値
変換の結果の文字
  • 機能
文字cが大文字の場合、小文字に変換した値を返す。文字cが大文字以外の場合、変換せずにそのままの値を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	printf("%cは小文字にすると%cです。", c, tolower(c));
}

toupper関数[編集]

  • 形式
#include <ctype.h>
int toupper(int c);
  • 引数
c 変換する文字
  • 返却値
変換の結果の文字
  • 機能
文字cが小文字の場合、大文字に変換した値を返す。文字cが小文字以外の場合、変換せずにそのままの値を返す。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
	int c;
	printf("文字を入力してください:");
	c=getchar();
	printf("%cは大文字にすると%cです。", c, toupper(c));
}

脚注[編集]

  1. ^ 『JISX3010:2003』p.135「7.4 文字操作<ctype.h>」
  2. ^ 『JISX3010:2003』p.136「7.4.1 文字種分類関数」
  3. ^ 『JISX3010:2003』p.138「7.4.2 大文字小文字変換関数」

参考文献[編集]

  • 日本工業標準調査会『JISX3010 プログラム言語C』2003年12月20日改正