问题标签 [stdstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
623 浏览

c++ - 使用 std::strings 而不是 char 数组的 WinAPI 文件输入/输出?

由于性能原因,我不想只使用一次 fstream。使用带有std::string而不是普通 char 数组的WinAPI 函数似乎是一个非常糟糕的主意。总而言之,我希望您告诉我为什么以下代码段不起作用(空的 stBuffer 保持为空)以及我需要做些什么来修复它。

提前致谢!

0 投票
3 回答
3298 浏览

c++ - C ++从字符串中删除字符

我目前正在尝试实现从 C++ 中的文本字段中删除字符。如果用户点击 Backspace,则执行以下代码。当前没有光标,它应该只删除最后一个字符...

这第一次工作正常,但如果你再次点击 Backspace,它不会删除任何东西。

我打印了mText.length()它,它表明长度永远不会改变。我尝试resize()了字符串,它工作正常,但我第一次点击 Backspace 它删除了2 个字符。

我希望有人可以解释这种行为并帮助我解决问题。我对内存分配不太了解,所以请耐心等待;)

感谢
opatut

0 投票
7 回答
98820 浏览

c++ - 地图如何在此地图中插入数据?

我需要以键值格式存储字符串。所以我使用如下地图。

在插入行出现错误

错误 C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : 无法推导出 'const std::_Tree<_Traits> &' 的模板参数来自 'const std::string'

我也尝试了 make_pair 函数,如下所示,但这也报告了同样的错误。

请让我知道出了什么问题以及上述问题的解决方案是什么。解决上述问题后,我可以像下面这样使用基于键检索值吗

0 投票
1 回答
9038 浏览

c++ - 轻松初始化 std::strings 的 std::list?

在 C++0x 中,我想要的是:

标准的非 0x C++ 中最简单的方法是什么?

0 投票
1 回答
479 浏览

c++ - 条件运算符的“无效转换”错误

我在这一行收到编译错误:

错误:

MenuItems 是以下类的 std::vector:

mn_yes 和 mn_no 是 std::strings。

编译器是 MinGW(与 code::blocks 一起分发的版本)。

0 投票
1 回答
1627 浏览

c++ - 包含 std::string 的结构被传递给 lua

我有使用 swig 的工作 C++ 代码,它创建一个结构,将其传递给 lua(主要是通过引用),并允许对结构进行操作,以便在我返回 C++ 函数后保留在 lua 代码中所做的更改。这一切都很好,直到我将 std::string 添加到结构中,如下所示:

我无法修改 std::string 因为它显然是作为 const 引用传递的。如果我试图在我的 lua 函数中为这个字符串赋值,我会得到这个错误:

str (arg 2) 中的错误,预期 'std::string const &' 得到 'string'

解决这个问题的正确方法是什么?我是否必须编写一些自定义 C++ 函数来设置z而不是使用像这样的普通语法obj.z = "hi"?有什么方法可以允许使用 swig 进行此分配吗?

C++代码是

0 投票
2 回答
6019 浏览

c++ - 如何将 std::string 变量传递给函数

我有一个 C++ 方法,它采用一个变量,方法签名是这样的:

我试着传入:

但我收到以下错误:

我在这里有几个问题。

  1. 我如何在没有正常的std::string情况下通过&
  2. 这看起来像值是可选folder = ""的是吗?如果是这样,您如何传递可选参数?
0 投票
12 回答
153833 浏览

c++ - string::npos 在这段代码中是什么意思?

std::string::npos以下代码片段中的短语是什么意思?

0 投票
4 回答
1112 浏览

c++ - 将 std::string 转换为带有尾随或前导 '\0' 的 LPCSTR

如何在保留 '\0' 字符的同时将 std::string 转换为 LPCSTR?

我想在 OPENFILENAME.lpstrFilter 上使用结果,它要求过滤器包含 '\0' 作为分隔符。

std::string.c_str() 似乎剥离和修剪 '\0'

提前致谢!

===========================

(如何正确地在回复中添加评论,例如论坛中的回复帖子?)

阅读您的评论后,我继续仔细检查此代码段:

我对 c_str() 或 LPCSTR 的工作方式有误吗?

0 投票
0 回答
327 浏览

virtual-functions - 返回 std::string 的虚函数没有“add esp,4”

我一直在研究DynObj并决定用 vftables 做我自己的实验。我正在使用 Visual Studio 2010 并创建了一个控制台主程序,它使用一个返回 std::string 的虚拟函数来实例化一个对象。

main 中的测试代码尝试使用从对象的 vftable 获得的指针调用对象的公共虚函数。我发现对于返回原始类型的函数没有问题。但是当函数返回一个 std::string 时,编译器会插入一个有效的堆栈弹出(添加 esp,4)。这会导致随后的堆栈检查代码引发异常。

我注意到这是在全局空间中声明的函数的规范。但是类中的函数不会在调用后生成 ESP 修饰符。

这是代码的本质以及程序集......

通过强制转换的指针对虚函数的最后一次调用导致:

运行时检查失败 #0 - ESP 的值未在函数调用中正确保存。这通常是调用使用一种调用约定声明的函数和使用另一种调用约定声明的函数指针的结果。

所以我的问题是:如何在返回非原始类型的虚函数上调用正确的调用约定?

顺便说一句,当我在 00BE178B 中断并将下一条语句设置为 00BE178E 时,执行完成没有问题。