用单个字符初始化字符串

2023-12-13

我想初始化一个std::string具有单个字符。以下代码不起作用:

int main()
{
    string s = 'c';
    cout<<s;
    return 0;
}

Error:

error: conversion from ‘char’ to non-scalar type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ requested
  string s = 'c';

但以下确实有效。为什么会这样呢?

int main()
{
    string s;
    s = 'c';
    cout<<s;
    return 0;
}

Output:

c[Finished in 0.8s]

当你这样做时

string s = 'c';

您基本上是在调用构造函数初始化而不是赋值操作。但没有任何构造函数std::string只需要一个char作为输入。然而有一个std::string(n, c), where n是字符数c在字符串中。

当你这样做时

s = 'c'

您执行赋值操作,调用重载string::operator= (string& operator= (char c);) for std::string。现在这个方法被重载以接受单个char也作为输入,正如您可以从这里的代码片段中看到的参考以及在this one.

std::string str1;
// ...
// (4) operator=( CharT );
str1 = '!'; 

此外,std::string::assign不接受单个char,与构造函数类似。

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

用单个字符初始化字符串 的相关文章

  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • T-SQL:如何获取字符串的确切字符长度?

    我正在为预先没有数据类型信息的表生成 T SQL SELECT 语句 在这些语句中 我需要执行取决于表列的原始值的长度的字符串操作操作 一个示例 但不是唯一的示例 是在字符串中的特定位置插入一些文本 包括将其插入末尾的选项 SELECT C
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • 无法修复 Digital Ocean Droplet 上的 NGINX 502:错误网关错误 - Ubuntu 20.04

    我已将我的网站部署到 Digital Ocean Droplet Ubuntu 20 04 服务器 一切都工作正常 今天 我在本地机器上对网站做了一些更改 因此 我将更改推送到 GitHub 然后再次将 GitHub 存储库克隆到服务器 然
  • H2DB和Java,大约>两个小时的差异

    我正在开发一个比赛计时系统 在某些情况下 我需要从 H2DB 检索时间对象 与其兄弟 或姊妹 一样 时间数据类型相对于 1970 年 1 月 1 日 并以 hh mm ss 格式在 SQL 中表示 日期默认设置为 01 01 1970 它默
  • Mysql 查询返回资源 id #8 而不是所需的值[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 您好 我正在尝试发现如何修复我的查询以返回正确的结果 这是我的查询 selectShoe
  • 使用python基于两个单词的词频统计

    网上有很多资源展示了如何对单个单词进行字数统计 喜欢this and this and this和别的 但我无法找到两个单词计数频率的具体示例 我有一个 csv 文件 其中包含一些字符串 FileList I love TV show ma
  • 通过 Angular.js 维护会话

    我正在使用 AngularJS 框架开展一个项目 我对使用这个框架还很陌生 过去我只使用纯 JavaScript 和 jQuery 该项目是一种针对利基市场的网页设计师应用程序 当用户在设计时在页面之间移动时 我想维护他们所做的所有更改的会
  • Babel 在运行 Jest 时不会编译 .test.js 文件

    运行yarn run jest no cache时 抛出一个错误 内容如下 SyntaxError Unexpected token import 我最好的猜测是 babel 没有达到这个测试文件 我需要将它们包含在 babelrc 中吗
  • 数据库:SUBSTRING 直到字符第一次出现

    我有字符串类型 abc 01 abcd 01 或 02 现在我想要子字符串 即 abc abcd 等 我正在使用 db2 as400 请建议通过 RIGHT 或 LEFT 函数进行处理 使用 POSITION 内置函数 格式为 POSITI
  • method_missing 覆盖不起作用

    我编写了一个方便的 ActiveRecord 扩展来将方法委托给基础对象 基于多表继承 class ActiveRecord Base def self acts as base class eval Q def method missin
  • 使用seaborn.swarmplot 将数据点映射到颜色图

    我想生成一个seaborn swarmplot 其中单个数据点的颜色映射到颜色图 我有一个与此类似的数据框 In 48 df Out 48 a c Key 0 1 12 1st 1 4 35 2nd 2 5 12 2nd 3 6 46 1s
  • Angular 2 ng 模块导入

    当我们在顶部导入文件时 导入 ngmodule 装饰器的元数据有什么意义 两个输入之间的差异 这些导入是完全不同的概念 文件顶部的导入是 TypeScript 导入 以使当前文件已知的类 接口和变量 与 Angular2 无关 The Ng
  • Android中使用WallpaperManager设置壁纸

    以下是我的代码 我想使用壁纸管理器设置为壁纸 我在用着通用图像加载器 但我不知道如何实现壁纸管理器 我的 setWall 不起作用 有点令人困惑 import android graphics Bitmap import android o
  • 智能编译器是否可以在不成为语言一部分的情况下完成 std​​::move 所做的所有事情?

    这是一个有点理论上的问题 但是尽管我对 std move 有一些基本的了解 但我仍然不确定它是否为该语言提供了一些理论上无法通过超级智能编译器实现的附加功能 我知道这样的代码 std string s1 STL std string s2
  • Google 表格 - 将某个范围内的值重复“n”次

    I am trying to execute the following in google sheets by repeating certain cell values from a range of cells number of r
  • 无需连接即可获取 WiFi 的 SSID?

    我想连接到SSID应用程序中的 wifi 网络 Code WifiConfiguration conf new WifiConfiguration conf SSID networkSSID 但问题是我不知道network SSID 如何获
  • Flow 无法识别回调内的细化

    此代码通过了流程检查 flow function test list Array
  • 带有相应归属链接的随机背景图片?

    我有一个页面显示 5 张图像数组中的随机背景图像 我还想在页面底部提供该图像的适当归属链接 但我不确定如何使用 javascript 或 php 执行此操作 这就是我现在所拥有的
  • 隐式复制构造函数/赋值运算符的行为

    我有一个关于 C 标准的问题 假设您有一个带有用户定义的复制构造函数和赋值运算符的基类 派生类使用编译器生成的隐式类 派生类的复制 赋值是否调用用户定义的复制构造函数 赋值运算符 或者您是否需要实现调用基类的用户定义版本 感谢您的帮助 如果
  • R 基于应用于多列的多个部分字符串过滤行

    数据集样本 diag01 lt as factor c S7211 J47 J47 K729 M2445 Z509 Z488 R13 L893 N318 L0311 S510 A047 D649 diag02 lt as factor c
  • 序列化对象时忽略继承的类

    当我从一个类继承并序列化新类时 我获得了所有属性 我怎样才能防止这种情况发生 我无法控制我继承的类 所以我无法向其属性添加属性 XmlIgnore Example class A public string PropertyA get se
  • 用单个字符初始化字符串

    我想初始化一个std string具有单个字符 以下代码不起作用 int main string s c cout lt