wcsnlen_s
在头文件<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
是空指针,则函数返回零,如果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):
- 7.29.4.6.1 wcslen函数(p: 439)
- K.3.9.2.4.1 wcsnlen_s函数(p: 646-647)
- C99标准(ISO/IEC 9899:1999):
- 7.24.4.6.1 wcslen函数(p:385)
另请参阅
strlenstrnlen_s(C11) | 返回给定字符串的长度(函数) |
---|
| C ++文档wcslen |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com