📅  最后修改于: 2023-12-03 15:29:51.775000             🧑  作者: Mango
wcschr()
是一个用于在宽字符串中查找特定字符的 C++ 标准库函数。
它的函数原型如下:
wchar_t* wcschr( const wchar_t* str, wchar_t ch );
其中,str
是目标字符串,ch
是要查找的字符。如果该字符在目标字符串中找到,则返回该字符的地址;否则返回 NULL
。
下面是一个简单的例子:
#include <iostream>
#include <cwchar>
int main()
{
const wchar_t *str = L"Hello, world!";
wchar_t ch = L'o';
wchar_t *ptr = wcschr(str, ch);
if (ptr != NULL)
{
std::wcout << L"The character '" << ch << L"' was found at position " << ptr - str << std::endl;
}
else
{
std::wcout << L"The character '" << ch << L"' was not found." << std::endl;
}
return 0;
}
在上面的例子中,目标字符串是 "Hello, world!"
,我们要在其中查找字符 'o'
,wcschr()
返回的结果是字符 'o'
第一次出现的位置。在上面的代码中,我们使用指针减法来计算该位置与字符串开头的距离。
如果要在字符串中查找多个字符,可以将 wcschr()
与循环结合起来使用。例如:
#include <iostream>
#include <cwchar>
int main()
{
const wchar_t *str = L"Hello, world!";
const wchar_t *ch = L"o";
while (*ch != L'\0')
{
wchar_t *ptr = wcschr(str, *ch);
if (ptr != NULL)
{
std::wcout << L"The character '" << *ch << L"' was found at position " << ptr - str << std::endl;
}
else
{
std::wcout << L"The character '" << *ch << L"' was not found." << std::endl;
}
++ch;
}
return 0;
}
在上面的例子中,我们使用了一个指向要查找的字符的指针 ch
。通过循环遍历该指针指向的字符,我们可以在目标字符串中查找多个字符。
需要注意的是,wcschr()
函数只返回第一个匹配的字符地址。如果需要查找所有匹配的字符,可以使用 wmemchr()
函数。