C++ 将字符串文字添加到字符文字

2023-12-02

我有一个关于 C++ 中字符串连接的问题。

string str = "ab" + 'c';
cout << str << endl;

char ch = 'c';
string str1 = "ab";
string str2 = str1 + ch;
cout << str2 << endl;

该代码产生:

ed before SaveGraphicsState
abc

有人可以解释一下这一行的处理吗:string str = "ab" + 'c'; ?


您对第一行的想法是正确的,这正是正在发生的事情。

没有任何默认值+文字字符串的运算符,例如"ab"所以发生的事情是编译器接受它(作为 C 风格的字符串)并使用const char*指向文字的指针。然后它会获取你的字面字符'c'并将其推广至int具有一定的价值。然后将此 int 添加到文字的地址并用作 C 字符串。由于您超出了为文字字符串分配的空间,因此结果是未定义的,它只是从结果地址打印出字符,直到找到空值为止。

如果您想一次性创建字符串,您可以帮助编译器确定您想要转换为string首先是演员表:std::string str = std::string("ab") + 'c';。或者(如单独的评论中所示)使用串联来执行,这可能会或可能不会表现得更好。使用对您的情况更清晰的选项:std::string str = "ab"; str += 'c';.

在第二种情况下,您已经创建了一个string and string有一个超载的operator+这就是直观的串联。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 将字符串文字添加到字符文字 的相关文章

  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • Java 不可变对象 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在学习不变性的概念 据我了解 一旦创建对象 不可变对象就无法更改其值 但我不明白不可变对象的以下用途 They are 自动是线程
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 用 2 列的多条记录构造一个字符串

    我准备了一个简单的SQL小提琴对于我的问题 在用 PostgreSQL 10 2 的 Pl pgSQL 编写的文字游戏中 玩家的动作存储在表中 CREATE TABLE words scores mid bigint NOT NULL RE
  • 使用 GWT JsInterop 实现 Javascript 函数回调

    我想包装这样的 JavaScript 代码 map addMarker lat 12 043333 lng 77 028333 draggable true fences polygon outside function m f alert
  • 如何打印使用 iText 创建的 PDF?

    您好 我已经创建了一个包含图像的 PDF 文件 我想在创建后打印我的 pdf 如果我在内存中保存 PDF 而不是文件 然后将其发送到打印机 那就更好了 有什么想法吗 我正在使用 iText 检查我的代码 import com lowagie
  • Jenkins 无法连接到 gerrit 存储库(Windows 安装)

    我在 Stackoverflow 和 google 上查看了很多 但无法解决我的问题 My aim 我想设置 Jenkins 使用 git SCM 通过 gerrit 克隆存储库主机 我的詹金斯配置 Jenkins 版本 2 7 1 在 W
  • matlab中如何提取矩阵元素? [复制]

    这个问题在这里已经有答案了 可能的重复 MATLAB 将向量元素分配给各个变量的最简单方法 如何在 MATLAB 中进行多重赋值 如果我有一个矩阵 A 1 5 10 我设置a1 A 1 b1 B 1 等在一条线上 我想做类似的事情 a1 a
  • 有什么办法可以克服 URL 长度 2k 字符的限制吗?

    我认为URL长度只能是2000个字符左右 否则会卡住某些版本的IE 有什么办法可以克服这个问题吗 起初我想到的是tinyurl 但tinyurl实际上立即重定向到更长的URL 所以这可能也会失败 Update 我需要这么长的 URL 因为我
  • R:将数据框中的分数转换为小数

    我正在尝试将以分数形式存储为字符的数字数据帧转换为以十进制形式存储的数字 还有一些整数 也存储为字符 我想保留数据帧的当前结构 即我不想要一个列表作为结果 示例数据框 注意 真实的数据框将所有元素作为字符 这里它是一个因素 但我不知道如何复
  • .NET 有效属性名称

    NET 中有效属性名称的文档在哪里 显然 诸如空格 或 之类的内容在属性名称中无效 但是这些内容记录在哪里 您可以在平台上查找特定语言的信息 以下是一些 C 语言 VB语言 进一步来说 C 属性声明
  • 我想要一个 AJAX 文件上传器,例如 Gmail 文件上传,带有 PHP 进度条

    我想要一个 AJAX 文件上传器 就像您上传用 PHP 编写的文件 带有进度条 时在 Gmail 中显示的那样 有人有主意吗 Thanks 你可以使用这个插件 http aquantum demo appspot com file uplo
  • “位置:粘性;”如何实现?物业工作?

    我想让导航栏在用户滚动页面后粘在视口的顶部 但它不起作用 我不知道为什么 如果您能帮忙 这里是我的 HTML 和 CSS 代码 container min height 300vh nav selections text transform
  • Android Studio 如何创建一个新线程?

    我有以下片段类 public class fragment1 extends Fragment private TextView bunz count private TextView money count private Bunz bu
  • jQuery mouseup 没有被正确检测到

    我有一个包含跨度的 div 我有一个 mouseup 和 mousedown 事件 在按下 div 时应该触发 但是它无法正常工作 请转到这个小提琴 http jsfiddle net Ym7rM 如果您选择文本然后尝试拖动它 它只会检测到
  • 根据 Selenium Python 中的值单击按钮元素

    有如下 HTML 代码
  • HttpServerUtility.UrlTokenDecode 似乎只返回 null

    我似乎遇到了问题HttpServerUtility UrlTokenDecode string 因为它不断返回null 导致程序崩溃 根据我收集的信息 此方法会将字符串转换为其 base64 字节数组 不幸的是 该代码的原始开发人员已不在我
  • 无法发送具有此动词类型的内容主体

    我刚刚在 NET 2 0 应用程序 在 Windows Mobile 6 标准模拟器上运行 中遇到此异常 ProtocolViolationException 让我感到困惑的是 据我所知 我没有添加任何内容主体 除非我无意中以某种方式添加了
  • 将 Linux 系统时钟同步到 Windows NTP 服务

    我有一台 Linux PC 作为时钟客户端 我想使用 ntpdate 将此 PC 的时间与同一网络上同一空间中的 Windows PC 同步 我无法找到如何做到这一点 尽管我认为 Windows 时间服务是一个 NTP 服务器 但这并不像调
  • React Native:根据 Fetch(Url) 请求生成按钮元素列表的最佳方法是什么?

    我想制作一个用户可以点击的按钮元素列表 按钮元素的数量将在 3 5 个之间变化 具体取决于我执行的获取请求的结果 我知道如何根据获取请求的结果填充平面列表 但不知道按钮的内容 有什么帮助吗 例如 使用这个 JSON 假设我想为其中的电影数量
  • 将 Excel 文件读入 Access 数据库的最佳方法

    从 Access 2007 应用程序中读取 仅读取 Excel 文件的 最佳 方法是什么 我只想循环遍历行并将数据放入 Access 表中 我不想手动导入 获取外部数据 对话框 而是通过 VBA 进行导入 用户获得一个带有 浏览 按钮的表单
  • 为 nginx 服务器转换的 Apache 身份验证规则

    请帮我将这些 httacces 规则从 apache 转换为 nginx 规则 RewriteCond HTTP Authorization RewriteRule E HTTP AUTHORIZATION 1 SetEnvIf Autho
  • C++ 将字符串文字添加到字符文字

    我有一个关于 C 中字符串连接的问题 string str ab c cout lt lt str lt lt endl char ch c string str1 ab string str2 str1 ch cout lt lt str