4 文字処理のための標準ライブラリー関数

4.1 文字処理

文字の処理のために、表1のようなライブラリー関数が、c言語には用意されている。プログラムを作成するときに、つかう。ただし、これを覚える必要はない。こんなものがあった程度でよい。

表 1: 1文字処理関関数。#include <ctype.h>が必要。変数は、int c;
関数名 動作
isalnum(c) 英数字なら真
isalpha(c) 英文字なら真
iscntrl(c) 制御文字なら真
isdigit(c) 数字なら真
isgraph(c) 印字可能文字なら真
islower(c) 小文字なら真
isprint(c) 空白以外の印字可能文字なら真
ispunct(c) 区切り文字なら真
isspace(c) 空白類文字なら真
isupper(c) 大文字なら真
isxdigit(c) 16進表示文字なら真
tolower(c) 文字cを小文字に変換
toupper(c) 文字cを大文字に変換

4.2 文字列処理

文字列の処理のために、表2のようなライブラリー関数が、c言語には用意されている。プログラムを作成するときに、つかう。ただし、これを覚える必要はない。こんなものがあった程度でよい。

表 2: 文字列処理関関数。#include <string.h>が必要。変数は、char s1[256],s2[256];のように文字型の配列。配列のサイズは、処理に必要なサイズよりも大きいこと(256とは限らない)。cは文字型の変数、char c;である。
関数名 動作
strlen(s1) 文字列s1の長さ、すなわち文字数を整数値返す。
strcpy(s1,s2) s1に、文字列s2をコピーする。
strcat(s1,s2) 文字列s1の後に、文字列s2をコピーする。
strcmp(s1,s2) 文字列s1とs2を比較する。
s1 > s2 の場合、戻り値は正
s1 == s2 の場合、戻り値は0
s1 < s2 の場合、戻り値は負
strncpy(s1,s2,n) s1に文字列s2の先頭からn文字をコピーする。
strncat(s1,s2,n) 文字列s1の後にと文字列s2の先頭からn文字を連結する。
strncmp(s1,s2,n) 文字列s1と文字列s2の先頭からn文字を比較する。比較の結果は、srcmpと同じ。
strchr(s1,c) 文字列s1の中の文字cの位置を整数で返す。文字がないときは、NULLを返す。
strstr(s1,s2) 文字列S1の中にある文字列S1の位置を整数で返す。もし、文字列がない場合、NULLを返す。


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年12月25日


no counter