📜  字符串数组 2d c++ (1)

📅  最后修改于: 2023-12-03 15:09:21.838000             🧑  作者: Mango

字符串数组 2d c++

简介

字符串数组是由多个字符串组成的数组结构,在 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++ 中的表示方法和基本操作,希望能够帮助读者快速掌握这一知识点。