Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C++ 中的原始字符串文字及C++ 中的字符串数组(1-2)

C++ 中的原始字符串文字及C++ 中的字符串数组(1-2)

作者头像
鲸落c
发布于 2022-11-14 08:40:30
发布于 2022-11-14 08:40:30
1.9K00
代码可运行
举报
文章被收录于专栏:鲸落学习笔记鲸落学习笔记
运行总次数:0
代码可运行

theme: channing-cyan highlight: a11y-dark


小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

C++ 中的原始字符串文字

在 C++ 中,为了转义像“\n”这样的字符,我们使用一个额外的“\”。从 C++ 11 开始,我们可以使用未处理转义字符(如 \n \t 或 \” )的原始字符串。原始字符串的语法是文字以 R”( 开头,以 )” 结尾

让我们看一个在 C++ 中查看原始字符串文字的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// C++ 程序来演示原始字符串的工作。
#include <iostream>
using namespace std;

int main()
{
    // A Normal string
    string string1 = "juejin.\nFor.\njuejiners.\n" ;

    // A Raw string
    string string2 = R"(juejin.\nFor.\njuejiners.\n)";

    cout << string1 << endl;

    cout << string2 << endl;
    
    return 0;
}

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
juejin.
For.
juejiners.

juejin.\nFor.\njuejiners.\n

C++ 中的字符串数组

在 C 和 C++ 中,字符串是一维字符数组,而 C 中的字符串数组是二维字符数组。声明它们的方法有很多,这里给出了一些有用的方法。

1. 使用指针:

我们实际上通过创建一个指针数组来创建一个字符串文字数组。

C 和 C++ 都支持这一点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>

int main()
{
    const char *colour[4] = { "Blue", "Red",
                            "Orange", "Yellow" };

    for (int i = 0; i < 4; i++)
        std::cout << colour[i] << "\n";
    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Blue
Red
Orange
Yellow
  • 字符串的数量是固定的,但不是必须的。4 可以省略,编译器将计算正确的大小。
  • 这些字符串是常量,它们的内容不能改变。因为字符串文字(字面意思是带引号的字符串)存在于内存的只读区域中,我们必须在此处指定“const”以防止可能导致程序崩溃的不需要的访问。

2. 使用二维数组:

当所有字符串的长度已知并且需要特定的内存占用时,此方法很有用。字符串的空间将在单个块中分配

这在 C 和 C++ 中都受支持。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>

int main()
{
    // Initialize 2D array
    char colour[4][10] = { "Blue", "Red", "Orange",
                        "Yellow" };

    // Printing Strings stored in 2D array
    for (int i = 0; i < 4; i++)
        std::cout << colour[i] << "\n";

    return 0;
}

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Blue
Red
Orange
Yellow
  • 字符串的数量和字符串的大小都是固定的。同样,4 可能会被忽略,并且适当的大小将由编译器计算。但是,必须给出第二个维度(在本例中为 10),以便编译器可以选择合适的内存布局。
  • 每个字符串都可以修改,但会占用第二维给出的全部空间。每个将在内存中彼此相邻布置,并且不能改变大小。
  • 有时,需要控制内存占用,这将分配具有固定、规则布局的内存区域。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++ 中的字符串数组(5 种不同的创建方式3-5)
theme: channing-cyan highlight: a11y-dark
鲸落c
2022/11/14
2K0
C++中的stringstream及其应用
theme: channing-cyan highlight: a11y-dark
鲸落c
2022/11/14
4540
Day9-字符串-字符模式匹配
Q:已知字符串pattern与字符串str,确认str是否与pattern匹配。str与pattern匹配代表字符串str中的单词与pattern中的字符一一对应。(其中pattern中只包含小写字符,str中
BUPTrenyi
2019/07/15
6290
Day9-字符串-字符模式匹配
【重拾C语言】六、批量数据组织(三)数组初值;字符串、字符数组、字符串数组;类型定义 typedef
本文介绍了C语言:数组初值;字符串、字符数组、字符串数组;类型定义 typedef
Qomolangma
2024/07/30
1080
【重拾C语言】六、批量数据组织(三)数组初值;字符串、字符数组、字符串数组;类型定义 typedef
10min快速回顾C++语法(五)字符串专题
⭐写在前面的话:本系列文章旨在短时间内回顾C/C++语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。
timerring
2022/09/23
9550
《挑战30天C++入门极限》C/C++中字符串常量的不相等性及字符串的Copy
C/C++中字符串常量的不相等性及字符串的Copy #include <iostream> void main(void) { if("test"=="test") { cout<<"相等"; } else { cout<<"不相等"; } }   上面的代码我们测试两个内容为test的字符串常量是否相等,按照常理,应该是相等的,这些在一些过程
landv
2019/07/15
5960
C++字符串数组 | 字符串数组输出
在C++中不仅可以用string定义字符串变量,也可以用string定义字符串数组。
小林C语言
2020/12/11
2.5K0
C++字符串数组 | 字符串数组输出
搞清C++中指针、数组、字符串的关系
在一些时候,字符串、指针和数组的关系我们常常搞混,下面通过一些典型问题来展示它们间的关系。
zlmai
2018/09/09
1.7K0
C++字符串输入输出以及复合类型浅谈
ch_1和ch_2都是char字符数组,但是ch_2拥有字符串特有的\0,所以ch_2也被称为字符串,而ch_1由于没有\0,所以不能成为字符串。 想要使用cout输出两个字符数组,第二个被正常输出,第一个正常输出后出现了乱码,处理字符串的函数,像cout输出字符串,它们都会把字符串里面的字符一个一个的进行处理,如果遇到空字符,则停止处理,由于第一种写法没有写入\0,所以cout会一直处理,直到在内存中遇到空字符,好在内存中存在很多的空字符,所以才会出现上述情况。
花狗Fdog
2020/10/28
5980
C++字符串输入输出以及复合类型浅谈
c++字符串
C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。
爱学iOS的小麦子
2023/01/18
4600
C++中的数组和字符串,strlen函数,iostream头文件
C++语法是在C语言的基础上发展而来的,被称为“带类的C”,兼容C语言语法。本文介绍数组和字符串的基本知识。
全栈程序员站长
2022/07/23
2.1K0
C++之字符串类学习总结
一般我们在c语言要实现对字符串操作的话,一般是采用字符数组或者一组函数来实现的,为啥这样做呢,那是因为c语言里面根本就没有字符串类型的关键字;而且c语言也支持自定义类型,所以更加无法获得字符串类型
用户6280468
2022/03/21
3210
C++ 练气期之细聊字符串
程序不仅仅用于数字计算,现代企业级项目中更多流转着充满了烟火气的人间话语。这些话语,在计算机语言称为字符串。
一枚大果壳
2022/08/23
1.3K0
C++ 练气期之细聊字符串
C++014-C++字符串
在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/
用户2225445
2023/10/16
2620
C++014-C++字符串
C++数据结构之——数组
数组是一种线性数据结构,用于存储一组具有相同类型的数据元素。其基本特性包括:固定大小、顺序存储、随机访问。C++中支持多层数组的实现,能够满足复杂场景的需求。
红目香薰
2025/02/07
1210
数组及字符串相关知识
memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);一个size变量控制拷贝的字节数; 使用方式memcpy(b,a,sizeof(int)*k) 从a中赋值k个元素到b数组。
风骨散人Chiam
2020/10/28
7340
C++字符数组存放字符串 | 字符指针变量
C++指向数组的指针作函数参数  一维数组名可以作为函数参数传递,多维数组名也 可作函数参数传递。  C++用字符数组存放一个字符串 在C++中可以用多种方法访问一个字符串,第一种字符数组: #include<iostream>//预处理 using namespace std;//命名空间  int main()//主函数  {   char str[]="关注:C语言入门到精通";   cout<<str<<endl;    return 0; //函数返回值为0; } 编译运行结果: 关注:C语言入
小林C语言
2020/12/18
1.3K0
C++字符数组存放字符串 | 字符指针变量
C语言字符串操作总结大全(超详细)
  strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素 strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移
用户6754675
2019/12/02
2.9K0
C/C++ 字符串拷贝处理
strcat字符串连接: 将由src指向的空终止字节串的副本追加到由dest指向的以空字节终止的字节串的末尾
王瑞MVP
2022/12/28
6540
C++系列笔记(一)
【导读】《21天学通C++》这本书通过大量精小短悍的程序详细而全面的阐述了C++的基本概念和技术,包括管理输入/输出、循环和数组、面向对象编程、模板、使用标准模板库以及创建C++应用程序等。这些内容被组织成结构合理、联系紧密的章节,每章都可在1小时内阅读完毕;每章都提供了示例程序清单,并辅以示例输出和代码分析,以阐述该章介绍的主题。 本文是系列笔记的第一篇,欢迎各位阅读!
墨明棋妙27
2022/08/24
3550
相关推荐
C++ 中的字符串数组(5 种不同的创建方式3-5)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验