C言語 文字列内から文字群を含まない先頭からの長さを取得 - string.h - [ strcspn ]
2008.11.17 Monday | by LRESULT
文字列内から文字群を含まない、先頭からの長さを取得するには、strcspn()を使います。
strspn()とは逆で、文字列「CDEFGABABAB」があった場合に、
文字群を「ABC」とすると、先頭の「CDEFG」の5文字を取得するということです。
書式 | size_t strcspn( const char *s1, const char *s2 ) |
---|---|
機能 | 文字列内から文字群を含まない先頭からの長さを取得 |
引数 | const char *s1 : 検索対象の文字列 const char *s2 : 検索する文字群 |
戻り値 | 文字群(s2)を含まない、文字列(s1)の先頭からの長さを返します。 |
文字列「DACBBC2ABC」内から、文字群「1234」を含まない、 先頭からの長さを取得してみます |
---|
#include <stdio.h> #include <string.h> int main(void) { char *s1 = "DACBBC2ABC"; char *s2 = "1234"; int len; len = strcspn( s1, s2 ); printf( "文字群を含まない先頭部分の長さ %d¥n", len ); return 0; } |
文字群を含まない先頭部分の長さ 6 |
---|
と、表示されます。 「1234」で構成されない文字(途中で「2」まで)が 先頭から6文字というわけです。 |