3 文字列

3.1 基本

3.1.1 文字型変数と代入

つぎに,文字型の変数宣言とそれへの値の代入である.

3.2 標準ライブラリー関数

文字や文字列を扱うために,表1や表 2に示すライブラリー関数が容易されている.学年末試験の 時には,この表は参考資料として添付するのでこれを憶える必要はない. この表の関数を使うためには,<ctype.h><string.h>をインクルード する必要がある--ということは憶えよ.

3.2.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を大文字に変換 大文字(文字型)

3.3 文字列処理関数

2を使うためには,#include <string.h>が必要で ある.変数は,char s1[256],s2[256];のように文字型の配列.そのサイズは,処理 に必要なサイズよりも大きいこと(256とは限らない).後の学習範囲であるが,s1s2は文字型のポインターでも良い.ま た,ダブルクォーテーションで囲んだリテラ ル表現も可能な部分もある.cは文字型の変数,char c;である.

表 2: 文字列処理関関数.
関数名 動作 戻り値
strlen(s1) 文字列s1の長さ,すなわち文字数を整数値返す. 文字列長(整数型)
strcpy(s1,s2) s1に,文字列s2をコピーする. ポインターs1の値
strcat(s1,s2) 文字列s1の後に,文字列s2をコピーする. ポインターs1の値
strcmp(s1,s2) 文字列s1とs2を比較する. 整数値
s1 > s2 の場合,戻り値は正
s1 == s2 の場合,戻り値は0
s1 < s2 の場合,戻り値は負
strncpy(s1,s2,n) s1に文字列s2の先頭からn文字をコピーする. ポインターs1の値
strncat(s1,s2,n) 文字列s1の後にと文字列s2の先頭からn文字を連結する. ポインターs1の値
strncmp(s1,s2,n) 文字列s1と文字列s2の先頭からn文字を比較する.比較の 結果は,srcmpと同じ. 整数値
strchr(s1,c) 文字列s1の中の文字cの位置を返す.文字がないときは, NULLを返す. ポインター
strstr(s1,s2) 文字列s1の中にある文字列s1の位置を返す.もし,文字 列がない場合,NULを返す. ポインター


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年3月4日


no counter