在C中创建动态二维Char数组

用户名

我在文本文件中有以下两行

4

oxd||987||ius||jjk

我想将数据存储在2维char数组中。第一行基本上表示数组中的行数,并假设数组中的列固定为3。将基于拆分数据||

那么我怎样才能声明这样一个动态数组。

卡尔·诺鲁姆

在C语言中,这没问题-您有VLA。就像是:

fgets(buf, sizeof buf, stdin);
int rows = strtol(buf, NULL, 0);

获取行数,然后:

char array[rows][3];

这样就完成了。这是一个完整的示例(很好,没有错误检查),展示了在给定输入的情况下如何使用它:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    char buf[100];
    fgets(buf, sizeof buf, stdin);

    int rows = strtol(buf, NULL, 0);
    char array[rows][3];

    fgets(buf, sizeof buf, stdin);

    char *s = strtok(buf, "|");
    for (int i = 0; i < rows; i++)
    {
        strncpy(array[i], s, 3);
        s = strtok(NULL, "|");
    }

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

    return 0;
}

运行和输出示例:

$ make example
cc     example.c   -o example
$ ./example < input
oxd
987
ius
jjk

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C-动态调整二维char数组的大小

来自分类Dev

在python中创建动态二维数组(循环)

来自分类Dev

创建二维动态数组的函数

来自分类Dev

如何在C#中创建二维动态数组?

来自分类Dev

在C中输出char的二维数组的最快方法

来自分类Dev

在C ++中打印二维char数组

来自分类Dev

c中带有char指针的二维数组

来自分类Dev

C中动态二维数组的限制

来自分类Dev

在 C 中创建、存储和输出二维数组

来自分类Dev

C中的二维数组错误

来自分类Dev

在C中返回二维数组?

来自分类Dev

在C中返回二维数组

来自分类Dev

反转C ++中的二维数组

来自分类Dev

在C中释放二维数组

来自分类Dev

在C中打印二维数组

来自分类Dev

二维动态数组创建和排序的最佳实践

来自分类Dev

Java中的二维char数组创建/初始化

来自分类Dev

动态创建按钮并将其存储在二维数组中的问题

来自分类Dev

在Java中动态创建带有值的二维数组

来自分类Dev

在Ruby中修改char的二维数组

来自分类Dev

如何动态获取二维数组中的位置

来自分类Dev

在VBA中动态标注二维数组的尺寸

来自分类Dev

二维数组C ++的动态分配

来自分类Dev

C ++删除二维动态分配的数组

来自分类Dev

如何使用memset或fill_n在C ++中初始化动态二维数组

来自分类Dev

如何在二维中使用memset在C ++中动态生成数组?

来自分类Dev

C ++中具有动态二维数组的访问冲突

来自分类Dev

如果c中为null的条件,则为二维数组(动态)

来自分类Dev

如何在C ++中的类内部声明二维动态数组