strspn() —最初の不一致文字のオフセットの検索

フォーマット

#include <string.h>
size_t strspn(const char *string1, const char *string2);

言語レベル

ANSI

スレッド・セーフ

はい

ロケール依存

この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。詳細については、CCSID およびロケールの理解を参照してください。

説明

strspn() 関数は、string2 で指定される文字のセットに含まれない、 string1 内文字が最初に現れる位置を検索します。 string2 を終了するヌル文字 (¥0) は、 一致プロセスでは考慮に入れられません。

戻り値

strspn() 関数は、検出された最初の文字のインデックスを戻します。 この値は、string2 からの文字のみで構成される string1 の初期サブストリングの長さと等しいです。string1string2 内にない文字で始まる場合、strspn() 関数は 0 を戻します。string1 内のすべての文字が string2 で検出される場合、string1 の長さが戻されます。

この例は、配列 string で、ab、または c 以外が最初に現れる位置を検索します。この例のストリングは、 cabbage であるため、strspn() 関数は 5 (a、b、または c 以外の文字の前の cabbage のセグメントの長さ) を戻します。
#include <stdio.h>
#include <string.h>
 
int main(void)
{
  char * string = "cabbage";
  char * source = "abc";
  int index;
 
  index = strspn( string, "abc" );
  printf( "The first %d characters of ¥"%s¥" are found in ¥"%s¥"¥n",
          index, string, source );
}
 
/*****************  Output should be similar to:  *****************
 
The first 5 characters of "cabbage" are found in "abc"
*/