已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5天前关闭。
Improve this question的
在试图为我遇到的一个问题寻求帮助时,我看到有人使用这样的代码来搜索一个字符串。我似乎无法找到2个line.find()
运算符之间的减号是什么意思的答案。它是点a到点b,还是减法?
minutes = line.substr(line.find(" ") + 1, line.find("h") - line.find(" ") - 1);
字符串
1条答案
按热度按时间rmbxnbpk1#
假设
line
是一个std::string
。std::string::find
返回可以找到所提供的子字符串的索引。字符串
这将返回紧接在
line
中可以找到" "
的索引之后的索引。型
这是对可以找到
"h"
和" "
的索引进行数学运算。如果
line
是" hello world! "
,则line.find(" ")
返回0
,line.find("h")
返回2
。因此,我们得到line.substr(0 + 1, 2 - 0 - 1)
或line.substr(1, 1)
。std::string::substr
采用开始位置和要包含的字符数。| | | L| L| O||W| O| R| L| D|| d ||
| --|--|--|--|--|--|--|--|--|--|--|--|--|--|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
获取从索引1开始的长度为1的子字符串将产生
" "
。