将单词插入2d数组

时间:2015-04-24 14:12:53

标签: c

您好我想创建一个完整停止的2D数组,并在其中插入单词hello,任何人都可以告诉我如何执行此操作吗? 到目前为止,这是我的努力。

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

char * generate_2D_array( )
{
    char a[5] = "hello";
    char grid[12][12];
    int i, j;
    for (i = 0;i < 12; i++)
    {
        for (j = 0; j < 12; j++)
        {
                grid[i][j] = ".";
        }
    }

    for (i = 0;i < 5; i++)
    {
            grid[i][j] = a[i];
    }       
}




int main(int argc, char *argv[])
{
  generate_2D_array( );
  system("PAUSE");  
  return 0;
}  

1 个答案:

答案 0 :(得分:1)

代码有很多错误:

  1. 您的generate_2D_array()函数被声明为返回char *,但它不会返回任何内容。

  2. 您在generate_2D_array()中声明了一个局部变量,显然您想要返回该变量,您应该这样做。

  3. 您将字符串文字const char *分配给char,即

    grid[i][j] = ".";
    

    您需要指定字符常量'.'

  4. 您的代码只需稍加修改即可使用

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    void
    generate_2D_array(char array[12][13], const char *hello)
    {
        int  i, j;
        for (i = 0 ; i < 12 ; i++)
        {
            for (j = 0 ; j < 12 ; j++)
            {
                array[i][j] = '.';
            }
            array[i][j] = '\0';
        }
    
        for (i = 0 ; (hello[i] != '\0') && (i < 12) ; i++)
        {
            array[0][i] = hello[i];
            /*    ^  ^ here you can't use `j' because it's out of bounds */
            /*    |    so put it on the first row? --------+             */
            /*    |                                        |             */
            /*    +----------------------------------------+             */
        }
    }
    
    int main(int argc, char *argv[])
    {
        char array[12][13];
        int  i;
    
        generate_2D_array(array, "hello");
        for (i = 0 ; i < 12 ; ++i)
            printf("%s\n", array[i]);
        return 0;
    }