C ++从字符串中获取字符我

Duckdoom5

我有一个小问题,但我不知道为什么。

我有std::wstring text一个值为L"test"

然后,我尝试打印第一个字符,如下所示:

OutputDebugString(&text[0]);

但结果是test..

当我使用 OutputDebugString(&text[1]);

结果是 est

我认为数组访问应该给我指定位置的字符。有人可以告诉我我应该做或做错了吗?

我也尝试.at(i);了相同的结果。

知道了:

wchar_t st = text[0];

OutputDebugString(&st);

Alex Reinking表示这是一个更好,更安全的解决方案:(因为该字符串随后包含空终止符)

wchar_t st[3] = { text[0], 0x0 };
OutputDebugString(&st[0]);

谢谢您的帮助

亚历克斯·雷肯(Alex Reinking)

这是因为在内存中,字符串看起来像这样:

      V-- &text[0]
addr: 0x80000000 0x80000001 0x80000002 0x80000003 0x80000004
text: t,         e,         s,         t,         0x00
      ^-- text[0]

因此,当您要求获得的地址text[1]是:

      V-- &text[1]
addr: 0x80000001 0x80000002 0x80000003 0x80000004
text: e,         s,         t,         0x00
      ^-- text[1]

剩下的e,x,t,NULL还是字符串“ ext”。您正在调用的函数将使用所有字符,直到终止符为止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++从字符串中获取字符我

来自分类Dev

如何获取字符串C ++中字符的值?

来自分类Dev

在c中获取字符串长度的问题

来自分类Dev

在C#中获取字符串之间的值

来自分类Dev

从文本列表中获取字符串数组C ++

来自分类Dev

在字符串C#中获取字母的出现

来自分类Dev

从 C 中的 strtok 获取字符串和整数

来自分类Dev

除非找到空字符串,否则在 C 中获取字符串输入

来自分类Dev

在C ++中读取字符串

来自分类Dev

在C ++中读取字符串

来自分类Dev

C#获取字符串中两个字符之间的字符串

来自分类Dev

如何以与C ++中的父字符串相同的顺序获取字符串的字符集

来自分类Dev

C#如何获取字符串中字符的长度

来自分类Dev

如何从 C++ 中的字符串指针获取字符?

来自分类Dev

在C中逐字符读取字符串

来自分类Dev

在C中逐字符读取字符串

来自分类Dev

如何编写正则表达式模式以在 c# 中获取字符串的子字符串

来自分类Dev

从占位符C#获取字符串值

来自分类Dev

C#MVC Resourcefile从变量获取字符串

来自分类Dev

C-从int获取字符串

来自分类Dev

如何从Lua文件获取字符串到C ++

来自分类Dev

目标C /从URL获取字符串

来自分类Dev

C#从数据集获取字符串异常

来自分类Dev

从占位符C#获取字符串值

来自分类Dev

C ++:通过char *获取字符串输入

来自分类Dev

仅获取字符串 C# 的编号

来自分类Dev

如何在C#中获取字符串中特定文本的行号

来自分类Dev

您如何从c中的数组中获取字符串?

来自分类Dev

在c中的二维数组中获取字符串输入