C++数组之一维字符数组和二维字符数组
- 引言
- 一、一维字符数组
- 1.1、一维字符数组的初始化
- 1.2、字符数组的遍历
- 1.3、从键盘获取字符串
- 1.4、使用示例
- 二、二维字符数组
- 2.1、定义
- 2.2、初始化
- 2.3、访问
- 总结
引言
💡 作者简介:专注于C/C++高性能程序设计和开发,理论与代码实践结合,让世界没有难学的技术。包括C/C++、Linux、MySQL、Redis、TCP/IP、协程、网络编程等。
👉
🎖️ CSDN实力新星,社区专家博主
👉
🔔 专栏介绍:从零到c++精通的学习之路。内容包括C++基础编程、中级编程、高级编程;掌握各个知识点。
👉
🔔 专栏地址:C++从零开始到精通
👉
🔔 博客主页:https://blog.csdn.net/Long_xu
🔔 上一篇:【013】C++数组之一维数值数组和二维数值数组
一、一维字符数组
1.1、一维字符数组的初始化
(1)逐个元素初始化(不推荐)。
char string[]={'h','e','l','l','o'};
(2)以字符串的形式初始化(推荐)。
char[6]="hello";
(2)两种初始化方式的区别。
1.2、字符数组的遍历
(1)使用循环方式遍历,逐个字符操作。
char string[]="hello";
int i=0;
for(i=0;i<sizeof(string);i++)
{
putchar(string[i]);
}
(2)使用std::cout直接输出字符串,需要字符数组的数组名,遇到 ‘\0’ 才介绍。
char string[]="hello";
cout<<string;//输出hello
char string[]="hel\0lo";
cout<<string;//输出hel
1.3、从键盘获取字符串
(1)std::cin获取字符串,遇到回车或空格结束输入。
(2)std::cin.getline获取带空格的字符串。
1.4、使用示例
获取一个字符串,不使用strlen函数下求字符串的长度。
#include <iostream>
using namespace std;
int main()
{
char str[32]={0};
cout<<"请输入一个字符串:";
cin.getline(str,sizeof(str));
// 计算字符串的长度
int i=0;
while(str[i]!='\0')
i++;
cout <<str<<" 字符串的长度: "<<i<<endl;
return 0;
}
二、二维字符数组
当我们需要存储和操作大量数据时,使用二维数组是非常方便的。C++ 中的二维字符数组可以看作是一个由多个一维字符数组组成的集合,其中每个元素都代表了一个字符。
下面详细介绍 C++ 中二维字符数组的定义、初始化和访问方式。
2.1、定义
在 C++ 中定义二维字符数组需要指定行数和列数,语法格式如下:
char arr[ROWS][COLS];
其中 ROWS
表示行数,COLS
表示列数。例如,以下代码定义了一个大小为 3 行 4 列的二维字符数组:
const int ROWS = 3;
const int COLS = 4;
char arr[ROWS][COLS];
2.2、初始化
在定义并声明二维字符数组后,可以对其进行初始化。有两种方法可以实现初始化:
(1)直接赋值法:
使用花括号 {}
将初始值括起来,并按照行优先顺序将其逐个填入到数组中。例如:
const int ROWS = 3;
const int COLS = 4;
char arr[ROWS][COLS] = {
{'A', 'B', 'C', 'D'},
{'E', 'F', 'G', 'H'},
{'I', 'J', 'K', 'L'}
};
(2)循环赋值法:
通过循环遍历每个元素并赋予初值。例如:
const int ROWS = 3;
const int COLS = 4;
char arr[ROWS][COLS];
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
arr[i][j] = 'A' + i * COLS + j;
}
}
(3)字符串赋值法。通过字符串直接赋值,例如:
char str[][16]={
{"hello"},
{"world"},
{"my friend!"}
}
2.3、访问
访问二维字符数组的元素时需要使用双重循环,先遍历行数再遍历列数。例如,以下代码遍历了上面定义的二维字符数组并输出每个元素:
const int ROWS = 3;
const int COLS = 4;
char arr[ROWS][COLS] = {
{'A', 'B', 'C', 'D'},
{'E', 'F', 'G', 'H'},
{'I', 'J', 'K', 'L'}
};
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;
}
输出结果为:
A B C D
E F G H
I J K L
总结
C++ 中的一维字符数组和二维字符数组都是常用的数据类型,它们可以存储和操作大量字符数据。
一维字符数组:
- 定义格式:
char arr[size]
- 初始化方式:直接赋值或循环赋值
- 访问方式:使用下标访问(从 0 开始)
二维字符数组:
- 定义格式:
char arr[rows][cols]
- 初始化方式:直接赋值或循环赋值
- 访问方式:使用双重循环遍历每个元素,先遍历行数再遍历列数