前のページ|次のページ

COUNTC関数

文字のリストに表示される(または表示されない)文字列内の文字の個数を数えます。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル1に準拠しています。英語以外の言語を使用する場合、可能な限りI18Nレベル1の関数の使用は避けてください。特定の環境下では、I18Nレベル1の関数は、2バイト文字セット(DBCS)または複数バイト文字セット(MBCS)エンコーディングを使用すると正常に動作しない場合があります。

構文

必須引数

string

文字定数、変数または式を指定します。この中にある文字を数えます。

ヒント 文字のリテラル文字列を引用符で囲みます。

character-list

文字リストを初期化する文字定数、変数または式を指定します。COUNTCはこのリストの文字を数えます(ただし、V修飾子をmodifier引数で指定しない場合)。V修飾子を指定すると、このリストにないすべての文字を数えます。他の修飾子を使うことでリストに文字をさらに追加できます。

ヒント 文字のリテラル文字列を引用符で囲みます。
修飾子を処理した後でリストに文字がない場合、COUNTCはゼロを返します。

オプション引数

modifier

文字定数、変数または式を指定します。空白でない文字はそれぞれCOUNTC関数のアクションを変更します。空白は無視されます。修飾子として使用できる文字(大文字または小文字)は次のとおりです。

空白 無視されます。
aまたはA 文字のリストにアルファベット文字を追加します。
bまたはB 左から右方向ではなく、右から左方向にstringをスキャンします。
cまたはC 文字のリストに制御文字を追加します。
dまたはD 文字のリストに数字を追加します。
fまたはF アンダースコア文字および英文字(VALIDVARNAME=V7でSAS変数名の先頭に使用できる文字)を文字リストに追加します。
gまたはG 文字のリストにグラフィカル文字を追加します。
hまたはH 文字のリストに水平タブを追加します。
iまたはI 大文字と小文字を区別しません。
lまたはL 小文字を文字リストに追加します。
nまたはN 文字のリストに数字、アンダースコアおよび英文字(VALIDVARNAME=V7を使用したSAS変数名内に表示可能な文字)を追加します。
oまたはO このCOUNTCインスタンスを最初に呼び出す1回のみ、character-list引数およびmodifier引数を処理します。以降の呼び出しにおけるcharacter-listまたはmodifierの値の変更は、COUNTCで無視されることがあります。
pまたはP 文字のリストに句読点を追加します。
sまたはS 文字のリストに空白文字(空白、水平タブ、垂直タブ、キャリッジリターン、ラインフィード、フォームフィード)を追加します。
tまたはT stringおよびcharacter-listから末尾の空白を取り除きます。両方(またはすべて)の文字引数ではなく一方のみから末尾の空白を削除する場合は、COUNTC関数にT修飾子を使用するかわりに、TRIM関数を使用します。
uまたはU 大文字を文字リストに追加します。
vまたはV 文字リストに現れない文字を数えます。この修飾子を指定しないと、COUNTCはこの文字リストに現れない文字を数えます。
wまたはW 印刷可能文字を文字リストに追加します。
xまたはX 文字のリストに16進文字を追加します。
ヒント modifierが定数の場合、引用符で囲みます。一組の引用符で複数の定数を指定します。

詳細

COUNTC関数では、文字引数をNULLに指定できます。ヌル引数は長さがゼロの文字列として扱われます。文字リストに数える文字がない場合、COUNTCはゼロを返します。

比較

COUNTC関数は文字列中の個別の文字を数えるのに対し、COUNT関数は文字列中の部分文字列の文字を数えます。

COUNTC関数で文字列中の文字数を数えるときに、修飾子を使用する場合と使用しない場合の例を次に示します。
data test;
   string  = 'Baboons Eat Bananas     ';
   a       = countc(string, 'a');
   b       = countc(string, 'b');
   b_i     = countc(string, 'b', 'i');
   abc_i   = countc(string, 'abc', 'i');
      /* Scan string for characters that are not "a", "b", */
      /* and "c", ignore case, (and include blanks).       */
   abc_iv  = countc(string, 'abc', 'iv');
      /* Scan string for characters that are not "a", "b", */
      /* and "c", ignore case, and trim trailing blanks.   */
   abc_ivt = countc(string, 'abc', 'ivt');
run;

proc print data=test noobs;
run;
COUNTC関数で修飾子を使用する場合としない場合の出力
COUNTC関数で修飾子を使用する場合としない場合の出力

関連項目:

前のページ|次のページ|ページの先頭へ