如何在c中初始化字符串数组?

时间:2016-11-25 22:15:47

标签: c arrays string initialization initializer-list

如果我有char arr[10][2] = {""};;

如何初始化它?有多少种方式,哪种方式最好?

void parallel_projection(int x, int y, int z, float angle); 这是对的吗?

3 个答案:

答案 0 :(得分:2)

要将所有字符串初始化为空字符串,请使用:

char arr[10][2] = {0};

如果你需要将它们初始化为不同的东西,显然你必须使用这些值。

答案 1 :(得分:2)

以下是如何在C中初始化字符数组的一些示例。您可以对数组的任何元素使用显示的初始化的任何组合

#include <stdio.h>

int main(void) 
{
    char arr1[10][2] = { "A" };
    char arr2[10][2] = { { "A" } };
    char arr3[10][2] = { { "AB" } };
    char arr4[10][2] = { { 'A', '\0' } };
    char arr5[10][2] = { { 'A', 'B' } };
    char arr6[10][2] = { [0] = "A" };
    char arr7[10][2] = { [0] = "AB" };
    char arr8[10][2] = { [0] = { "AB" } };
    char arr9[10][2] = { [0] = { [0] = 'A', [1] = '\0' } };
    char arr10[10][2] = { [0] = { [0] = 'A', [1] = 'B' } };


    // to avoid diagnostic messages of unused variables
    ( void )arr1;
    ( void )arr2;
    ( void )arr3;
    ( void )arr4;
    ( void )arr5;
    ( void )arr6;
    ( void )arr7;
    ( void )arr8;
    ( void )arr9;
    ( void )arr10;

    return 0;
}

您也可以使用这些

之类的初始化
    char arr1[10][2] = { "" };
    char arr1[10][2] = { '\0' };

您不能在C中使用像这样的初始化

    char arr1[10][2] = {};

在C ++中是允许的。

答案 2 :(得分:0)

您可以按如下方式初始化它:

char arr[10][2] = {
    {"H"},
    {"A"},
    {"C"},
    ....
    //and so on at most 10
};