名前空間
変種
操作

wcslen, wcsnlen_s

提供: cppreference.com
< c‎ | string‎ | wide
ヘッダ <wchar.h> で定義
size_t wcslen( const wchar_t *str );
(1) (C95およびそれ以降)
size_t wcsnlen_s(const wchar_t *str, size_t strsz);
(2) (C11およびそれ以降)
1) ワイド文字列の長さ、つまり、終端のヌルワイド文字の直前までの非ヌルワイド文字の数を返します。
2) (1) と同じですが、 str がヌルポインタの場合はゼロを返し、 str の最初の strsz 個のワイド文字内にヌルワイド文字が見つからなければ strsz を返します。
すべての境界チェック付き関数と同様に、 wcslen_s__STDC_LIB_EXT1__ が処理系によって定義されていて、 <stdio.h> をインクルードする前にユーザが __STDC_WANT_LIB_EXT1__ を整数定数 1 に定義した場合にのみ、利用可能であることが保証されます。.

目次

[編集] 引数

str - 調べるヌル終端ワイド文字列を指すポインタ
strsz - 調べる最大ワイド文字数

[編集] 戻り値

1) ヌル終端ワイド文字列 str の長さ。
2) 成功した場合はヌル終端ワイド文字列 str の長さ、 str がヌルポインタの場合はゼロ、ヌルワイド文字が見つからなかった場合は strsz

[編集] ノート

strnlen_s および wcsnlen_s は実行時制約ハンドラを呼ばない唯一の境界チェック付き関数です。 これらはヌル終端されていない文字列のための限定的なサポートを提供するのために使用される純粋なユーティリティ関数です。

[編集]

#include <wchar.h>
#include <stdio.h>
 
int main(void)
{
    wchar_t str[] = L"How many wide characters does this string contain?";
 
    printf("without null character: %zu\n", wcslen(str));
    printf("with null character: %zu\n", sizeof str / sizeof *str);
}

出力:

without null character: 50
with null character: 51

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.29.4.6.1 The wcslen function (p: 439)
  • K.3.9.2.4.1 The wcsnlen_s function (p: 646-647)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.24.4.6.1 The wcslen function (p: 385)

[編集] 関連項目

指定された文字列の長さを返します
(関数) [edit]