【发布时间】:2020-05-18 17:40:55
【问题描述】:
我是一名初级程序员,我正在尝试理解这段代码及其工作原理......
代码如下:
#include <iostream>
#include <string> //C++ Strings Library
using namespace std;
int main() {
string s1 {};
string wordFind {};
s1 = "The secret word is Boo";
cout << "Enter the word to find: ";
cin >> wordFind;
size_t position = s1.find(wordFind);
if (position != string::npos)
cout << "Found " << wordFind << " at position: " << position << endl;
else
cout << "Sorry! " << wordFind << " not found" << endl;
return 0;
}
这些是我实际遇到的问题:
- 什么是
size_t,我们应该在什么时候准确地使用它们?(我只知道我们应该将它们用于数组索引和循环计数) - 为什么我们在这里使用
size_t?不能这样吗?:
position = s1.find(wordFind);
- 位置到底是什么?(我的意思是它是由 C++ 组成的还是它的一部分?)
- if 条件是否意味着搜索单词直到字符串的末尾?
编辑:谢谢大家帮助我...我很感激:)
【问题讨论】:
-
position = s1.find(wordFind);缺少变量position的类型。我不知道您对“它是由它组成还是它是 C++ 的一部分?”是什么意思。关于size_t参见例如What's the difference between size_t and int in C++?。关于if条件见What does string::npos mean。 -
我认为你应该读一些 c++ 的书,因为你需要知道一些东西不能包含在一个答案中
-
@anonymous 是的,你是对的......我绝对应该......现在我正在从 Frank mitropoulos 和互联网制作的 udemy 课程中学习 :))
-
@DavidPeterson
size_t只是一种类型,例如int和position只是一个任意变量名。我赞同阅读good book 的建议。所有这些都应该在入门课程或书籍中阐明。 -
size_t应该在以下情况下使用: 1. 您想要一些东西来表示索引并且您没有对其进行任何算术运算;或者 2. 您希望它使用超出 @ 范围的值987654336@。否则默认使用int