【问题标题】:Text file into 2D string文本文件转换成二维字符串
【发布时间】:2020-07-23 10:47:26
【问题描述】:

你能帮我写代码吗?我想将我的文本文件逐行转换为二维字符串。我尝试了一些条件,但没有成功。


m - 行数

n - 列数


这是我的功能:

int convert_text_file_into_2Dstring(int m, int n)
{   
    int i, j;
    int **string= (char **)malloc(m * sizeof(char *));
    for (i=0; i<n; i++)
         string[i] = (char *)malloc(n * sizeof(int));
    for(i=0; i<n; i++){
        for(j=0; j< m){
            ...
        }
    }
}

【问题讨论】:

  • 没有什么能比得上二维字符串。我明白你想要什么,但你应该更正你的措辞(也是函数的标识符)。

标签: c string file multidimensional-array text-files


【解决方案1】:

一个不错的 C99 功能怎么样:

int convert_text_file_into_2Dstring(int m, int n)
{
    int i, j;
    int string[m][n];
    for(i=0; i<n; i++)
    {
        for(j=0; j< m ; j++)
        {
            //...
        }
    }
}

所以你不需要 malloc 并且以后必须释放。

如果你不能使用那个特性,因为编译器不支持它,你应该释放你分配的内存:

int i, j;
int **string= (int **)malloc(m * sizeof(char *));

for (i=0; i<n; i++)
    string[i] = (int *)malloc(n * sizeof(int));

for(i=0; i<n; i++)
{
    for(j=0; j< m ; j++)
    {
        //...
    }
}

for (i=0; i<n; i++)
    free(string[i]);

free(string);

现在你可以像这样设置内部循环:

string[j][i] = text[i];

使用 strcpy 会更方便:

int convert_text_file_into_2Dstring(int m, int n)
{
    int i, j;
    int string[m][n];
    for(j=0; j< m ; j++)
    {
       strncpy(string[j],text,n);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多