【问题标题】:Accessing the elements using [ ] operator on a pointer to wstring在指向 wstring 的指针上使用 [ ] 运算符访问元素
【发布时间】:2023-04-08 02:48:01
【问题描述】:

在使用 c_str() 函数将其转换为 const 引用之前,我无法在指向 wstring 对象的指针上使用 to [] 运算符。

在我的程序中getwString()返回一个指向wstring的指针

这是有效的:

`if(obj->getwString()->c_str()[5]!='H')`

这不是:

`if(obj->getwString()->[5]!='H')`

如何取消引用它而不是使用c_str() 函数需要帮助

【问题讨论】:

  • 您应该将其与宽字符进行比较,并且可能不应该首先从该函数返回指针。
  • if( obj->getwString()->operator[](5) != L'H' )

标签: c++ pointers wstring


【解决方案1】:

对于这种情况,除了 -> 之外,还有另一个取消引用运算符 * 运算符:

std::wstring * ptr = obj->getwString();
(*ptr)[5];

或者干脆

(*obj->getwString())[5];

【讨论】:

  • 非常感谢,我把星号放在别的地方了。
【解决方案2】:

如果你真的想以这种方式访问​​它,你可以这样做:

if(obj->getwString()-> operator [](5) != 'H'),但这不是很漂亮。

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 2023-02-16
    • 2020-12-24
    • 1970-01-01
    • 2017-01-04
    • 2012-01-19
    • 1970-01-01
    • 2010-12-27
    相关资源
    最近更新 更多