温馨提示×

c语言二维字符数组怎么初始化

小亿
82
2024-09-13 10:30:08
栏目: 编程语言

在C语言中,可以使用以下几种方法来初始化一个二维字符数组:

  1. 逐行初始化:
#include<stdio.h>

int main() {
    char arr[3][4] = {
        {'a', 'b', 'c', '\0'},
        {'d', 'e', 'f', '\0'},
        {'g', 'h', 'i', '\0'}
    };

    for (int i = 0; i < 3; i++) {
        printf("%s\n", arr[i]);
    }

    return 0;
}
  1. 使用字符串字面量进行初始化:
#include<stdio.h>

int main() {
    char arr[3][4] = {
        "abc",
        "def",
        "ghi"
    };

    for (int i = 0; i < 3; i++) {
        printf("%s\n", arr[i]);
    }

    return 0;
}

注意:在这两种方法中,我们都需要在每个字符串的末尾添加一个空字符(‘\0’),表示字符串的结束。在第二种方法中,编译器会自动在字符串末尾添加空字符。

  1. 如果你知道数组的大小,还可以使用循环进行初始化:
#include<stdio.h>

int main() {
    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 - 1; j++) {
            arr[i][j] = 'a' + i * cols + j;
        }
        arr[i][cols - 1] = '\0';
    }

    for (int i = 0; i< rows; i++) {
        printf("%s\n", arr[i]);
    }

    return 0;
}

这个例子中,我们使用了两个嵌套的循环来初始化二维字符数组。外层循环控制行数,内层循环控制列数。注意,我们在每行的末尾添加了一个空字符。

0