问题标签 [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 投票
1 回答
211 浏览

c++ - 为什么我的 MD5 值打印带有额外的“f”字符?

使用 std::string 的 at() 方法时出现奇怪的问题。我想使用这个库计算给定字符串的 md5 哈希:http: //sourceforge.net/projects/libmd5-rfc/files/ 哈希计算正确,但是以人为方式打印存在问题。输出是:

代码是:

“f”字符从何而来?

0 投票
2 回答
2119 浏览

c++ - 是否可以使用 cout 从用户定义的类型自动转换为 std::string?

在问题中,如果我在我的类中定义一个字符串运算符:

然后我使用它:

使用显式强制转换一切正常,但是如果我删除(字符串),编译器会说它需要在 std::string 中声明的强制转换运算符。它不应该自动转换我的类型吗?已解决:我正在重载 operator<< (ostream& os, const Literal& l)。

0 投票
2 回答
389 浏览

c++ - 当您必须将其作为 char* 传递时,std::string 是否比 char* 更好?

最近的一个问题中,我了解到在某些情况下您只需要通过 achar*而不是 a std::string。我真的很喜欢string,对于我只需要传递不可变字符串的情况,它可以很好地使用.c_str(). 在我看来,利用字符串类易于操作是一个好主意。但是,对于需要输入的函数,我最终会执行以下操作:

显然,这不是那么,呃,直截了当。现在,我对 C++ 还很陌生,所以我真的不能只见树木不见森林。在这种情况下,每个输入都必须转换为 C 字符串并返回以利用string's 的有用方法,这只是一个更好的主意并习惯于 C 风格的字符串操作吗?这种不断的来回转换是否太愚蠢而无法处理?

0 投票
3 回答
3136 浏览

c++ - std::string 中的波兰字符

我有个问题。我正在为 Linux 编写一个波兰语应用程序(当然还有波兰语字符),编译时收到 80 条警告。这些只是“警告:多字符字符常量”和“警告:案例标签值超过类型的最大值”。我正在使用 std::string。

如何替换 std::string 类?

请帮忙。提前致谢。问候。

0 投票
4 回答
220547 浏览

c++ - 连接字符串不能按预期工作

我知道这是一个常见问题,但在寻找参考资料和其他材料时,我找不到这个问题的明确答案。

考虑以下代码:

编译器告诉我它找不到char[dim].

这是否意味着字符串中没有 + 运算符?

但在几个例子中,有这样一种情况。如果这不是连接更多字符串的正确方法,那么最好的方法是什么?

0 投票
3 回答
4231 浏览

c++ - std::cout << stringstream.str()->c_str() 什么也不打印

在一个函数中,得到 unsigned char && unsigned char 长度,

结果:

  • WAS:什么都不打印(猜想有一个指向 const .. case 的指针)
  • 好:打印数据
  • BAD:什么都不打印
  • 测试,断言:打印 mystr.size() 等于传递的无符号字符大小。

我试过:

  • string.assign(scp.rdbuf());
  • memcpy(char, scp.str(), 10);
  • 创建/分配临时字符、字符串的不同方法

没有帮助..它想要获得一个包含数据的std::cout 'able std::string (从foo中挑选,它是unsigned char,它是数据包数据)。

猜测原始foo可能不是以空值终止的,或者问题是这样的 - 简单,但无法进入......这里要寻找什么?

(此代码是使用 libpcap 的另一种尝试,只是以 C++ 方式打印数据包,而不使用已知的 C++ 魔术包装器,如 libpcapp)。

0 投票
7 回答
65053 浏览

c++ - 如何将 wchar_t* 转换为 std::string?

我将班级更改为使用 std::string (基于我在这里得到的答案,但我有一个函数返回 wchar_t *。如何将其转换为 std::string?

我试过这个:

但它显示错误 C2440: 'initializing' : cannot convert from 'wchar_t *' to 'std::basic_string<_Elem,_Traits,_Ax>'

0 投票
1 回答
1764 浏览

gcc - 为什么 std:string + int 不给出编译错误?

我们刚刚发现我们的同事认为他可以向 std::string 添加一个整数,并在他的代码中到处使用这样的操作。

我们没有看到此操作的任何编译器错误,我不明白为什么:没有operator+ (const string& lhs, int rhs);. int 是否被默默地转换为 char?(使用 gcc Red Hat 4.1.2 和 -Wall 开关编译)。

而且,最重要的是,我们如何找到将 int 添加到 std::string 的所有行?

0 投票
4 回答
3472 浏览

c++ - 如何正确返回 std::string (或如何正确使用该返回值)

假设您有一个全局类(例如可用于应用程序的运行时)

当我这样做时,使用第一种形式会给我带来奇怪的行为

它看起来好像字符串在 printf 可以使用它之前从内存中消失了。有时它会打印 value: hello 其他时候它会崩溃或什么也不打印。

如果我首先像这样复制字符串

事情确实有效。

当然,必须有一种方法可以避免使用临时字符串执行此操作。

编辑:所以共识是使用 const std::string 和返回值。

我知道每个人都说原始代码应该没问题,但我可以告诉你,我已经看到 Windows CE 上的 MSVC 2005 遇到了问题,但只是在 CE 盒子上。不是Win32交叉编译。

0 投票
1 回答
4247 浏览

c++ - Visual Studio 2010 使用 std::string 编译错误?

所以这可能是我最近看到的最奇怪的事情,我很好奇这是怎么发生的。编译器给了我一个错误,说 std::string 在用作返回类型时未定义,但在用作类方法中的参数时未定义!

重新构建所有它仍然发生,我必须选择干净的解决方案,然后再次重新构建所有,以便宇宙重新调整。虽然目前已经解决,但我仍然想知道是什么原因造成的,因为我不知道为什么什么时候不应该发生冲突,尤其是当我总是为 STL 使用完全限定名称时。