- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我了解find_first_of其他形式的用法,但终生无法弄清(或找到答案)如何使用此函数的第三种形式(缓冲区?)。 “size_t n”参数有什么作用?文档指出,这是要搜索的字符值的数量,但这意味着什么?字符串中出现的次数,要搜索的不同字符的数量?从原始字符串还是要搜索的字符串开始的位置?
最佳答案
取自 std::string::find_first_of()
of cplusplus.com,因为该声明似乎是您要搜索的声明...但是请相信我,不要从那里获取文档...使用其他可靠的站点(例如cppreference)可以清楚地定义每个函数和参数的作用。 ..
该站点的成员函数的第三个声明是
来自cppreference's std::find_first_of()
的第二个声明,来自cppreference的函数的声明如下:
size_type find_first_of( const CharT* s, size_type pos, size_type count ) const;
Note:
Before even going as far to know how find_first_of is declared, we must know how it works...
Taken for en.cppreference.com definition of the find_first_of function:
"Finds the first character equal to one of the characters in the given character sequence. The search considers only the interval [pos, size()). If the character is not present in the interval, npos will be returned."
可以解释为以下内容:
1)认为这里的缓冲区就像一个字符数组,此函数的作用是单独检查字符串中的所有字符...
2)换句话说,使用字符串的所有字符分别遍历缓冲区...
3)第三个参数,只是一个需要找到长度的参数...主要情况是当您懒于执行std::string::substr()
时...
例如:some_str.find_first_of("this_will_be_found", 10, 5)
...
该行将检查所有单个字符,直到仅5个字符,因为count是 5 ('t'
,'h'
,'i'
,'s'
,'_'
...那里,...其中5个!)位于some_str
缓冲区中索引10 ...(请注意,索引从0开始,而不是1 ...)
现在,为了不让您感到无聊,这是声明的说明(最后!):
在这里,find_first_of是一个重载函数,其给定的声明之一如上所述。
1)size_type
只不过是一个无符号整数,通常用作大小类型,因为无符号整数不能具有负值,除了零(0)之外,它是一个正负数,仍然允许...
2)const CharT* s
显然是const char* s
,因为字符串是std::string
(字符的字符串缓冲区,对于宽字符串,wchar_t
则是unsigned short
或char
而不是std::wstring
)...
3)pos
就像您可能已经猜到的那样,是函数应开始查找的起点...
4)count
也是一个无符号的int(一个不允许小于零的值,即为负数...),它只是一个参数,它定义了要在缓冲区中查找多少个字符...因为find_first_of搜索所有字符单独,而不是一次缓冲区...
5)最后,此函数是一个常量函数,它具有const
说明符,并且不会参与修改任何类型的变量...期望mutable
s ...
关于c++ - 如何使用字符串find_first_of缓冲区形式(size_t n参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895534/
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
这是代码 #include #include #include #include using namespace std; class test { struct con {
在某些情境中,我们可能需要在 A 序列中查找和 B 序列中任意元素相匹配的第一个元素,这时就可以使用 find_first_of() 函数。 仅仅用一句话概述 find_first_of() 函数的功
我想这样做,例如 size_t pos=wStr.find_first_of(L"U+8001"); 但是 gnu 编译器一直警告字符太长。我不知道 0x8001 代表什么字符,但这是它的编码字节。
我正在尝试用 C++ 创建一个 XML 解析器。我目前正在使用 cygwin 和 gcc 进行编译,并使用 gdb 进行调试。我有这段代码: const size_t mDataSize = mDat
在 STL 中,当我执行 s.find("") 时,它返回 0 而 s.find_first_of("") 返回 -1 (npos)。造成这种差异的原因是什么? 最佳答案 s.find(t) 查找子字
假设我有一个字符串 foo 并且我想搜索第二个句点(如果有的话)。 我正在使用这段代码: std::size_t start = foo.find_first_of('.'); if (start
在下面的代码中,我不明白为什么 b 是假的。 string s = "--p--"; cout -1; cout 运算符会在 s.find_first_of("p")>-1; 被计算之前将 -1 转
我的代码如下: string s_1 = "ssissippi"; string s = "si"; size_t pos = s_1.find_first_of(s); while (pos !=
我想输入一个代码,例如 ABC,并检查代码中的字符是否以字符串中的确切顺序出现,例如代码 ABC 和字符串 HAPPYBIRTHDAYCACEY,是否符合条件。然而,代码为 ABC 的字符串 TRAG
我正在从一个文本文件中读取内容,其中包含一些如下所示的汇编指令 [标签] 操作码 [arg1] [,arg2] 现在我只是在读取标签的阶段,但是当我从文件中读取并将标签输入到数组中时,我得到了一些不应
我正在从事一个软件项目,发现了很多错误使用 find_first_of()、find_first_not_of()、find_last_of() 和 find_last_not_of() 的例子。这些
std::string 有两个不同的成员函数做同样的事情: size_type find( CharT ch, size_type pos = 0 ) const noexcept; size_typ
我试图掌握 std::search 和 std::find_first_of 之间的区别 它们具有相同的原型(prototype): template ForwardIterator1 fin
C++标准库中的成员函数string::find_first_of可以在空子串中搜索: s.find_first_of(c, s.size()) 或 s.find_first_of(c, strin
我不确定我是否正确使用了 find_first of 和 last_of,但我想做的是当它在我的代码的开头或结尾发现 _ 时,以及当它发现两个或更多时,我需要打印错误_ 彼此相邻,像这样 lol___
C++ 的“std::string::find_first_of”是否有任何 Java 等价物? string string1( "This is a test string!"); int lo
一、string::size_type() 在C++标准库类型 string ,在调用size函数求解string 对象时,返回值为size_type类型,一种类似于unsigned类型的int 数据
我是一名优秀的程序员,十分优秀!