C++ 中的字符串数组(5 种不同的创建方式3-5)

简介: STL字符串类可用于创建可变字符串数组。在这种方法中,字符串的大小不固定,可以更改字符串。

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

3. 使用字符串类:


STL字符串类可用于创建可变字符串数组。在这种方法中,字符串的大小不固定,可以更改字符串。


这仅在 C++ 中受支持,因为 C 没有类。


#include <iostream>
#include <string>
int main()
{
  std::string colour[4] = { "Blue", "Red",
              "Orange", "Yellow" };
  for (int i = 0; i < 4; i++)
    std::cout << colour[i] << "\n";
}
复制代码


输出

Blue
Red
Orange
Yellow
复制代码

  • 数组的大小是固定的,但不是必须的。同样,这里的 4 可以省略,编译器会确定数组的合适大小。字符串也是可变的,允许更改它们。

4. 使用向量类:

STL 容器Vector可用于动态分配大小可变的数组。


这仅在 C++ 中可用,因为 C 没有类。请注意,此处的初始化列表语法需要支持 2011 C++ 标准的编译器,尽管您的编译器很可能会支持,但需要注意这一点。


#include <iostream>
#include <vector>
#include <string>
int main()
{
  std::vector<std::string> colour {"Blue", "Red", "Orange"};
  colour.push_back("Yellow");
  for (int i = 0; i < colour.size(); i++)
    std::cout << colour[i] << "\n";
}
复制代码


输出

Blue
Red
Orange
Yellow
复制代码

  • 向量是动态数组,允许您随时添加和删除项目。

  • 向量中可以使用任何类型或类,但给定的向量只能包含一种类型。

5.使用数组类:


STL 容器数组可用于分配固定大小的数组。它的使用方式可能与矢量非常相似,但大小始终是固定的。


这仅在 C++ 中受支持。

#include <iostream>
#include <array>
#include <string>
int main()
{
  std::array<std::string, 4> colour { "Blue", "Red", "Orange",
                  "Yellow" };
  for (int i = 0; i < 4; i++)
    std::cout << colour[i] << "\n";
  return 0;
}
复制代码


输出

Blue
Red
Orange
Yellow
复制代码

笔记:


这些绝不是制作字符串集合的唯一方法。C++ 提供了多个容器类,每个类都有不同的权衡和特性,它们的存在都是为了满足您在项目中的需求。




目录
相关文章
|
2天前
|
存储 算法 编译器
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
55 1
|
2天前
|
存储 缓存 安全
C++数组全解析:从基础知识到高级应用,领略数组的魅力与技巧
C++数组全解析:从基础知识到高级应用,领略数组的魅力与技巧
54 1
|
2天前
|
存储 C++ 索引
C++ 字符串完全指南:学习基础知识到掌握高级应用技巧
C++的字符串使用`string`类处理,如`string greeting = &quot;Hello&quot;`。字符串连接可通过`+`或`append()`函数实现。访问字符使用索引,如`myString[0]`。`length()`或`size()`可获取长度。`getline()`用于读取整行输入。注意转义字符如`\\&quot;`用于在字符串中嵌入双引号。使用`cin`读取字符串时,空格会终止输入,而`getline()`能读取整行。
27 0
|
2天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
2天前
|
存储 C++
【C++模板】模板实现通用的数组
【C++模板】模板实现通用的数组
|
2天前
|
存储 编译器 C语言
C++字符串大小写之for语句
C++字符串大小写之for语句
18 0
|
2天前
|
存储 人工智能 C++
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
【重学C++】【指针】详解让人迷茫的指针数组和数组指针
34 1
|
2天前
|
C++
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
【代码片段】【C++】获取当前时间戳并生成固定格式字符串
15 0
|
2天前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
2天前
|
安全 C++
石头剪子布(字符串解法 C++)
石头剪子布(字符串解法 C++)
20 0