◆◇◆ Tips! ◆◇◆

文字列操作まとめ

[Japanese Pocket C User's Page]-[Tips!]


文字列操作関数についてまとめました

1.インデックスについて

文字列の操作をする上で、何個所かでインデックスを使っています。
文字列操作におけるインデックスは、0からはじまる文字列内における文字の場所です。

 

2.整数を返す関数

文字列に対して演算を行い、その結果として整数を返す関数は次の通りです。

・文字列の長さ strlen(string str)
・文字の場所 strchr(string str,char ch)
・文字の後ろからの場所 strrchr(string str,char ch)

同じ文字が2つ出てくるときに、strchrとstrrchtで値が異なります。

 

3.文字列の変換

一定の規則に伴い、文字列を変換する関数は次の通りです。

・大文字へ変換 strupr(string str)
・小文字へ変換 strlwr(string str)
・文字の順序を逆に strrvrs(str)
・1文字だけ置き換える strsetc(string str,int index, char ch)

大文字、小文字への変換は、アルファベットに対してのみ機能します。

 

4.文字列の一部の抽出

文字列の中から、一部を取り出す関数は次の通りです。

・左から strleft(string str, int len)
・途中(文字列を) strmid(string str, int first, int len)
・途中(1文字だけ) strgetc(string str, int index)
・最後から strright(string str, int len)

5.比較、確認

文字の状態を確認する関数は次の通りです。
状態を確認する場合は、関数の頭文字に「is」がついているようです。
strncmp以外はすべて引数に1文字を使っています。

・小文字? islower(char ch)
・大文字? isupper(char ch)
・英数字? isalphanum(char ch)
・アルファベット? isalpha(char ch)
・文字列の比較? strncmp(str1,str2,int count)

 

6.データ型変換

データ型を変換する関数は次の通りです。
PocketCは基本的に型の自動変換を行うので、
他の言語に比べると、型変換を行う関数は少ないようです。

・integer→hexに変換 hex(int ival)
・fload→stringに変換 format(float fval, int precision)

 

7.ちとややこしい・・・

strspn(string src,string charset)という関数は使い方がちょっとややこしいです。
引数charsetに含まれる文字は、引数srcの先頭から何文字目まで使われているか?
って事を返す関数です。なんのこっちゃわかりませんね。

例えば、以下のようになります。

strspn("0123456789", "012"); 返値 3
strspn("0120-345-678", "012"); 返値 4
strspn("0123456789", "012ABC"); 返値 3
strspn("0123456789", "123"); 返値 0

でどんな時に使うのって事ですが、strlen(string str)の値と比較することによって、
定められた文字以外を含んでいるかの確認に使えそうです。


[Japanese Pocket C User's Page]-[Tips!]