📅  最后修改于: 2023-12-03 15:09:21.838000             🧑  作者: Mango
字符串数组是由多个字符串组成的数组结构,在 c++ 中,我们可以使用二维字符数组来表示字符串数组 2d,在二维数组中每个元素都是一个字符数组,代表了一个字符串。通过遍历二维字符数组,我们可以获取整个字符串数组中的所有字符串。
我们可以使用如下代码来创建一个二维字符数组:
const int MAXN = 10005;
char str[MAXN][MAXN]; // 创建一个 MAXN x MAXN 的二维字符数组
其中,MAXN
代表了二维字符数组的最大长度。
我们可以通过下面的方法初始化二维字符数组:
// 初始化二维字符数组
for (int i = 0; i < n; i++) {
scanf("%s", str[i]); // 读入字符串
}
这个例子中,我们通过 scanf("%s", str[i])
从标准输入中读入了 n
个字符串并存储到二维字符数组中。需要注意的是,scanf
遇到空格和回车就会停止读入,所以如果字符串中包含空格和回车,就需要采用其他的读入方法。
遍历二维字符数组可以使用类似二重循环的方式:
// 遍历二维字符数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%c", str[i][j]); // 输出字符
}
printf("\n"); // 每输出完一个字符串就输出一个换行符
}
这个例子中,我们使用两个 for
循环来遍历整个二维字符数组,然后输出每个字符。当我们输出完一个字符串后,需要输出一个换行符,否则所有的输出结果会在同一行上。
下面的例子演示了如何创建、初始化并遍历一个二维字符数组:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10005;
char str[MAXN][MAXN];
int main() {
int n, m;
scanf("%d%d", &n, &m); // 读入字符串数组的大小
// 初始化二维字符数组
for (int i = 0; i < n; i++) {
scanf("%s", str[i]); // 读入字符串
}
// 遍历二维字符数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%c", str[i][j]); // 输出字符
}
printf("\n"); // 每输出完一个字符串就输出一个换行符
}
return 0;
}
以上代码实现了从标准输入中读入大小为 n x m
的字符串数组,并输出了其中的每一个字符串。
本文简单介绍了字符串数组 2d 在 c++ 中的表示方法和基本操作,希望能够帮助读者快速掌握这一知识点。