public static member function
<string>

std::char_traits::find

static const char_type* find (const char_type* p, size_t n, const char_type& c);
查找字符的首次出现
返回指向 p 指向的 n 个字符序列中与 c 相等的第一个字符的指针。

所有字符特征类型都应实现该函数,就像使用成员 eq比较各个字符一样。

参数

p
指向包含字符序列的数组的指针。
请注意,该函数将认为序列的长度为 n 个字符,而不管它是否包含空字符。
n
要比较的字符序列的长度(以字符为单位)。
c
一个字符值。

成员类型char_type字符类型(即,char_traits 中的类模板参数)。
size_t 是一个无符号整数类型。

返回值

如果存在第一个匹配项,则为指向该匹配项的指针;否则为空指针

示例

1
2
3
4
5
6
7
8
9
10
11
// char_traits::find
#include <iostream>   // std::cout
#include <string>     // std::char_traits

int main ()
{
  const char foo[] = "test string";
  const char* p = std::char_traits<char>::find(foo,std::char_traits<char>::length(foo),'i');
  if (p) std::cout << "the first 'i' in \"" << foo << "\" is at " << (p-foo) << ".\n";
  return 0;
}

输出
the first 'i' in "test string" is at 8.


复杂度

最多为 n 的线性关系。

异常安全

除非 p 指向的数组不够长,否则此成员函数在任何标准特化中都不会引发异常(无抛出保证)。
否则,将导致未定义行为

另见