当前位置: 首页 > news >正文

C++之C++11字符串字面量后缀总结(二百四十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:在Android代码中:例如:“–display-id"s、”–dispsync"s等这种用法会让开发者疑惑,其实这是C++11字符串字面量后缀的用法,用作类型转换,下文来讲解它的用法。
在这里插入图片描述

2.C++11字符串字面量后缀介绍

  • C++11引入了字符串字面量后缀,可以用于在字符串字面量的末尾添加后缀以指定其类型。这样做的好处是增强了类型安全性,使得字符串字面量可以根据后缀的类型进行解析和处理。

  • 以下是一些常用的字符串字面量后缀:

  1. 后缀"s":用于表示字符串字面量,其类型为const char[]。例如:"hello"s表示类型为const char[]的字符串。

  2. 后缀"u8":用于表示UTF-8字符串字面量,其类型为const char[]。例如:"你好"u8表示类型为const char[]的UTF-8字符串。

  3. 后缀"u":用于表示宽字符字符串字面量,其类型为const wchar_t[]。例如:L"hello"u表示类型为const wchar_t[]的宽字符字符串。

  4. 后缀"U":用于表示Unicode字符串字面量,其类型为const char32_t[]。例如:U"hello"表示类型为const char32_t[]的Unicode字符串。

  5. 后缀"L":用于表示宽字符串字面量,其类型为const wchar_t[]。例如:L"hello"表示类型为const wchar_t[]的宽字符串。

这些字符串字面量后缀提供了更灵活的字符串字面量表示方式,可以根据需要选择适合的类型和编码方式。

3.代码实例

1.后缀s:用于创建 std::string 对象

#include <iostream>
#include <string>
#include <string_view>using namespace std::literals::string_literals;int main() {std::string message = "Hellow"s;std::cout << message << std::endl;return 0;
}

2.后缀u8:表示UTF-8字符串字面量,其类型为const char[]

#include <iostream>
#include <string>
#include <string_view>using namespace std::literals::string_literals;int main() {const char* str2 = u8"你好";std::cout << str2 << std::endl;return 0;
}

3.后缀L: 用于表示宽字符串字面量,其类型为const wchar_t[]

#include <iostream>
#include <string>
#include <string_view>using namespace std::literals::string_literals;int main() {const wchar_t* str3 = L"hello";std::wcout << str3 << std::endl;return 0;
}

4. U 后缀用于创建 UTF-32 编码的字符串:

#include <iostream>
#include <string>int main() {std::wstring wideString = L"Hello";std::wcout << wideString << std::endl;return 0;
}

5. i 后缀用于创建 std::complex 复数对象:

#include <iostream>
#include <complex>int main() {std::complex<double> complexNumber = 1.0 + 2.0i;std::cout << complexNumber << std::endl;return 0;
}

6. if 后缀用于创建 std::complex 复数对象,其中虚部为浮点数:

#include <iostream>
#include <complex>int main() {std::complex<float> complexNumber = 1.0 + 2.0if;std::cout << complexNumber << std::endl;return 0;
}

相关文章:

  • 分享从零开始学习网络设备配置--任务4.2 使用IPv6静态及默认路由实现网络连通
  • SpringCore完整学习教程5,入门级别
  • 软考系列(系统架构师)- 2012年系统架构师软考案例分析考点
  • 应用案例|基于三维机器视觉的曲轴自动化上下料应用方案
  • Nginx的进程结构实例演示
  • 方案聚焦:高可用的F5分布式云DNS负载均衡
  • 模数转换器-ADC基础
  • Harmony 个人中心(页面交互、跳转、导航、容器组件)
  • How to install mongodb-7.0 as systemd service with podman
  • 【AD9361 数字接口CMOS LVDSSPI】B 并行数据之CMOS
  • C# 递归算法使用简介_常用整理
  • C++初阶-类和对象(中)1
  • PPT文档图片设计素材资源下载站模板源码/织梦内核(带用户中心+VIP充值系统+安装教程)
  • 如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)
  • 【点云】有序/无序点云区别(详细详解)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 08.Android之View事件问题
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Django 博客开发教程 16 - 统计文章阅读量
  • Docker 笔记(2):Dockerfile
  • Druid 在有赞的实践
  • es6(二):字符串的扩展
  • leetcode98. Validate Binary Search Tree
  • magento2项目上线注意事项
  • MQ框架的比较
  • 关于 Cirru Editor 存储格式
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 简析gRPC client 连接管理
  • 开源SQL-on-Hadoop系统一览
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端面试总结(at, md)
  • 前嗅ForeSpider中数据浏览界面介绍
  • 听说你叫Java(二)–Servlet请求
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 06-01 点餐小程序前台界面搭建
  • NLPIR智能语义技术让大数据挖掘更简单
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​【已解决】npm install​卡主不动的情况
  • ​插件化DPI在商用WIFI中的价值
  • ​一些不规范的GTID使用场景
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #1014 : Trie树
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (二十三)Flask之高频面试点
  • (附源码)php投票系统 毕业设计 121500
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)关于多人操作数据的处理策略
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .Net 中Partitioner static与dynamic的性能对比
  • .net反编译工具
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • :O)修改linux硬件时间
  • @vue/cli 3.x+引入jQuery