17字符数组

简介: 17字符数组

C++入门——60s从0到1

字符数组

 

C++中的字符数组是一个用于存储字符串的常用数据类型。本文将详细介绍如何声明、初始化、访问和操作字符数组,以及如何使用字符数组处理字符串。

 

声明和初始化字符数组

 

在C++中,我们可以使用以下语法声明和初始化字符数组:

char array_name[array_size];
char array_name[] = "string_literal";
char array_name[] = { 'a', 'b', 'c', ... };

 

第一个语法是声明一个具有指定大小`array_size`的字符数组,但没有初始化。第二个语法声明一个字符数组并将一个字符串字面量赋值给该数组。第三个语法声明一个字符数组,并使用花括号初始化数组中的元素。

 

下面是一个示例代码:

#include <iostream>
using namespace std;
 
int main() {
    // 声明并初始化字符数组
    char str1[20] = "Hello, world!"; // 长度为20的字符串,多余的空间被自动初始化为0
    char str2[] = "Goodbye, world!"; // 长度为12的字符串,多余的空间被自动初始化为0
    char str3[] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '\0'}; // 自定义的字符串,手动添加了结束符号\0
    
    // 打印字符数组
    cout << str1 << endl;
    cout << str2 << endl;
    cout << str3 << endl;
    
    return 0;
}

 

在上面的代码中,我们声明了三个字符数组`str1`、`str2`和`str3`,并分别使用不同的方式对它们进行了初始化。然后我们打印这些字符数组的内容。注意,我们使用了`\0`作为字符串的结束符号。

 

访问和操作字符数组

 

我们可以使用下标运算符`[]`来访问和操作字符数组中的元素。下面是一些示例代码:

 

#include <iostream>
using namespace std;
 
int main() {
    // 访问字符数组的元素
    char arr[] = {'H', 'e', 'l', 'l', 'o'};
    cout << arr[0] << endl; // 输出H
    arr[4] = 'W'; // 将第五个元素修改为W
    cout << arr[4] << endl; // 输出W
    
    // 操作字符数组的元素
    char str[] = "Hello, world!";
    int len = strlen(str); // 获取字符串的长度
    for (int i = 0; i < len; i++) {
        if (str[i] == ',') { // 如果遇到逗号,就将后面的字母反转
            for (int j = i + 1; j < len; j++) {
                swap(str[j], str[j + 1]);
            }
        }
    }
    cout << str << endl; // 输出结果为:Hello,dlrow!
    return 0;
}
在上面的代码中,我们首先演示了如何访问和修改字符数组的元素。然后我们演示了如何使用循环遍历字符数组并执行某些操作。在这个例子中,我们将逗号后面的字母反转了。
目录
相关文章
|
视频直播
【视频直播篇五】vue-cli3集成vue-aliplayer-v2
本文着重介绍vue-cli3集成vue-aliplayer-v2
852 0
|
11月前
|
前端开发 UED 开发者
React 悬浮按钮组件 FloatingActionButton
悬浮按钮(FAB)是常见的UI元素,用于提供突出的操作。本文介绍如何在React中使用Material-UI创建美观的FAB组件,涵盖基本概念、实现方法及常见问题解决。通过代码示例和优化技巧,帮助开发者提升用户体验,确保按钮位置、颜色、交互反馈等方面的表现,同时避免无障碍性和性能问题。
489 80
|
jenkins 持续交付 网络安全
[jenkins]连接git仓库
[jenkins]连接git仓库
240 1
|
安全 搜索推荐 定位技术
一张图30个知识点,全方位认知 Elasticsearch 技术发展
一张图30个知识点,全方位认知 Elasticsearch 技术发展
|
Rust Cloud Native 安全
哇塞!Rust 在云原生环境中搞大事啦!构建微服务竟如此酷炫,你还不来看看?
【8月更文挑战第31天】《构建微服务:Rust 在云原生环境中的实践》探讨了 Rust 语言凭借其内存安全、高性能及可靠性等特性,在快速发展的云计算领域构建微服务的优势。书中介绍了选择合适框架(如 Axum 和 Tide)、容器化部署、服务间通信及确保服务可靠性等方面的内容,并展示了 Rust 在云原生环境中的广泛应用前景。
698 1
|
API Python
python flask 提供web的get/post开发
python flask 提供web的get/post开发
184 0
|
JavaScript
js轮播图制作
js轮播图制作
104 1
|
存储 图形学
浅谈Unity之模型裁剪shader
Unity之模型裁剪shader
|
安全 区块链 开发工具
swap区块链交易所质押LP系统开发(模式介绍)方案部署
共识机制是区块链节点就区块信息达成全网一致共识的机制
|
Java 应用服务中间件 Apache
Tomcat 线程池学习总结
Tomcat 线程池学习总结
660 0