在我学习c ++的过程中,我遇到了一个有趣的情况,我无法找到解决它的方法
我尝试创建一个带有指针符号的字符串类型(在添加"using std :: string;"之后)
但是当我在内部输入一个值之后尝试在其中找到某些东西时,它给了我一个必须是类类型的错误
例:
string *something = new string("Something stringy - std::string");
Run Code Online (Sandbox Code Playgroud)
在那个刺痛中我试着搜索子串"str"
尝试使用此命令时:
cout << "The first occurrence of the substring 'str' in something starts at index " << *something.rfind("str", std::distance(begin(*something), end(*something))) << endl << endl << endl;
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
点运算符优先于解除引用运算符:您要做的事情相当于*(something.rfind(...)).由于something具有指针类型而不是类类型,因此它没有点运算符,并且您收到错误.
你可以使用(*something).rfind或者something->rfind,后者更短,更常见.该->操作是相当于.运营商为指针.
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |