strspn() — 最初の一致しないワイド文字のオフセットを検索する

形式

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

言語レベル

ANSI

スレッド・セーフ

はい

ロケール依存

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

説明

strspn() 関数は、 string1 の中で、 string2で指定された文字セットに含まれていない文字の最初のオカレンスを検索します。 string2 を終了するヌル文字 (¥ 0) は、マッチング・プロセスでは考慮されません。

戻り値

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

この例は、ab、または c ではない文字の配列 文字列 内で最初の発生を検出します。 この例のストリングは cabbageであるため、 strspn() 関数は、 a、b、または c以外の文字の前の cabbage のセグメントの長さである 5を返します。
#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"
*/

関連情報