wcsnlen_s
wcslen, wcsnlen_s
在头文件 | | |
---|---|---|
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
是空指针,则函数返回零,如果strsz
在第一个strsz
宽字符中未找到空宽字符,则返回值为src
所有边界检查的函数,wcsnlen_s
只有__STDC_LIB_EXT1__
在由实现定义,如果用户在包含之前定义__STDC_WANT_LIB_EXT1__
为整数常量。1wchar.h
参数
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标准(ISO/IEC 9899:2011):
另请参阅
strlenstrnlen_s(C11) | 返回给定字符串的长度(函数) |
---|
| C ++文档wcslen |