繁体   English   中英

如何在 C 中创建二维数字字符串数组?

[英]How would I create a 2D array of strings of numbers in C?

我正在执行一项任务,我对 C 比较陌生。 如果要给我一个这样的输入文件:

25 08 10 15 10 
10 13 50 60 70 
10 10 15 00 90
00 05 07 80 12
10 05 60 70 88

我将如何正确地将这些存储在一个数组中,以便它像二维数组一样显示,或者这在我对 C 的思考方式中是不可能的。

我下面的代码是 function 用于将输入文件转换为二维数组。 假设我已经有其他功能错误检查文件是否格式正确。

void createMatrix(FILE *fp) {
    int row = 5;
    int col = 5;
    char matrix[row][col];
    int i, j;
    char num[25];

    rewind(fp);
    for (i=0; i<row; i++) {
        for(j=0; j<col; j++) {
            fscanf(fp, "%s", name);
            bingoCard[i][j] = name;
        }
    }
}

如果它是我正在寻找的整数,这将起作用,但我需要在0008之类的数字前面保留 0。 我以后还需要 append 到这些数字,这就是为什么我需要以字符串格式将它们放入数组中。 有人能指出我正确的方向吗?

然后我需要在像这样对其进行更新时打印输入文件

25X 08 10 15 10 
10  13 50 60 70 
10  10 15 00 90
00  05 07 80 12
10  05 60 70 88

使矩阵中的每个元素成为一个字符串(一个数组)。 例如

char matrix[row][col][10];

然后直接读入该字符串:

fscanf(fp, "%9s", matrix[i][j]);

但是您也可以将矩阵创建为整数矩阵,然后使用printf格式来包含前导零:

int matrix[row][col];
// ...
fscanf(fp, "%d", &matrix[i][j]);
// ...
printf("%02d", matrix[i][j]);  // Prints leading zero if value is only a single digit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM