gpt4 book ai didi

c - 将一个单词插入二维数组

转载 作者:行者123 更新时间:2023-11-30 15:20:51 25 4
gpt4 key购买 nike

您好,我想创建一个由句号组成的二维数组,并将“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. 您的 generate_2D_array() 函数声明为返回 char *,但它不返回任何内容。

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

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

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

    您需要改为分配字符常量'.'

您的代码只需稍作修改即可运行,请看一下

#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;
}

关于c - 将一个单词插入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com