问题标签 [c-str]

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 投票
6 回答
55646 浏览

c++ - 字符串 c_str() 与 data()

c_str()我已经阅读了几个地方,和data()(在 STL 和其他实现中)之间的区别在于c_str()它总是以空值终止,而data()不是。据我在实际实现中所见,它们要么做同样的事情,要么data()调用c_str().

我在这里想念什么?在哪些场景中使用哪个更正确?

0 投票
3 回答
6943 浏览

c++ - std::string::c_str 和 std::string::data 有什么区别?

我为什么要打电话std::string::data()过去std::string::c_str()?当然,这里标准的疯狂有一些方法......

0 投票
3 回答
3178 浏览

c++ - C++ c_str 不返回整个字符串

我已经用普通的 ifstreams 和我正在使用的当前 boost:iostream 尝试了以下代码,两者都有相同的结果。

它旨在将文件从 physfs 加载到内存中,然后将其传递给处理程序进行处理(例如图像、音频或数据)。目前,当调用 c_str 时,它只返回文件的一小部分。

迭代器循环按预期输出整个 png 文件,但 c_str 调用仅返回前几个字符 (\211PNG)。

很长一段时间以来,我一直在尝试此代码的变体,但没有成功。有任何想法吗?

0 投票
1 回答
3784 浏览

gcc - 如何使 String 到 const wchar_t* 转换函数在 Windows 和 Linux 下工作

我从事为 MSVCC / Windows 编写的项目,我必须移植到 GCC / Linux。该项目有自己的字符串类,它将其数据存储在来自 Qt 的 QString 中。为了转换为 wchar_t*,最初有这种方法(适用于 Windows):

因为 unicode() 返回一个 QChar (它是 16 位长),这在 Windows 下工作,因为 wchar_t 在那里是 16 位,但现在使用 GCC wchar_t 是 32 位长,所以它不再工作了。我试图用这个来解决这个问题:

这样做的问题是,当这个函数返回时,对象不再存在,所以这也不起作用。我认为解决这个问题的唯一方法是:

  1. 不要使用 String::c_str() 并直接调用 .toStdString().c_str()
  2. 让 GCC 将 wchar_t 视为 16 位类型

可能性一对我来说意味着几个小时的不必要的工作,我不知道可能性二是否可能。我的问题是,如何最好地解决这个问题?我会很感激任何有用的建议。谢谢你。

0 投票
5 回答
904 浏览

c++ - .c_str() 怪异?无缘无故地更改数据?

我有这个简单的功能:

在该函数的第二行,我有正确的 wchar_t*。但是,当我返回时,数据会切换为垃圾数据。中间没有函数。是什么赋予了?!

0 投票
4 回答
5493 浏览

c++ - 从函数返回“c_str”

这是我在网上找到的一个小型图书馆:

在我的代码中,我正在这样做:

现在,起初d包含垃圾。然后我意识到我从函数中获取的 C 字符串在函数返回时被销毁,因为std::ostringstream它是在堆栈上分配的。所以我补充说:

现在我可以从函数中获取我需要的文本。

我有两个问题:

  1. 我是否正确理解这一点?

  2. 后来我注意到out(类型std::ostringstream)被分配了静态存储。这是否意味着该对象应该保留在内存中直到程序终止?如果是这样,那为什么不能访问字符串?

0 投票
5 回答
5945 浏览

c++ - 使用 c_str() 设置 char 数组?

myvector[i]是一个包含三个字母的字符串。为什么会出现这个错误?

0 投票
7 回答
31313 浏览

c++ - std::string::c_str() 结果的生命周期是多少?

在我的一个程序中,我必须与一些适用于const char*.

可以说我有一个看起来像这样的结构:

我的更高级别的应用程序只处理std::string,所以我想到了使用std::string::c_str()来获取const char*指针。

但生命周期是c_str()多少?

我可以在不面对未定义行为的情况下做这样的事情吗?

还是我应该立即将结果复制c_str()到另一个地方?

谢谢你。

0 投票
4 回答
11097 浏览

c++ - C/C++ 中 C_str() 函数的用途是什么

谁能告诉我 C/C++ 中 c_str() 函数的用途是什么?在什么情况下有必要使用它?

0 投票
0 回答
817 浏览

winforms - fstream 和 c_str() : c_str 不工作

我最近一直在研究一个程序,我尝试使用 System::String^ 将其用于 ofstream 文件...

我总是得到一个错误... 注意这是一个表单,所以它是一个头文件。

这是我的代码...(一部分)

我得到的错误是: