打印字符数组(C)只有第一个字母

时间:2015-07-05 22:10:55

标签: c arrays string

我需要手动填充一系列字符。我宣布这样:

char* coor = malloc(sizeof(char) * 5);

然后我手动将每个变量分配到它的位置:

coor[0] = O_colum;
coor[2] = ((char)(O_row+48));

coor[3] = '-';
coor[4] = D_colum;

coor[5] = ((char)(D_row+48));

D_RowO_row是整数,我需要字符形式的数字,而不是ASCII中的等价值;这就是我+48的原因

当我尝试打印时出现问题。如果我使用printf(" %s", coor)它只打印第一个字符,我不知道为什么。我正在使用%s,所以它应该打印字符串中的所有字符。 当我这样做时:

char *p = "hello";
printf("%s",p);

它会打印hello

1 个答案:

答案 0 :(得分:2)

您的代码中有两个错误:

  • 您正在跳过数组的第1位。这可能是 之所以只打印第一个元素。
  • 您需要在结尾添加结束字符串def generate_random_info(): def random_name(): return numpy.random.choice(['foo', 'bar']) def random_value(): return numpy.random.rand() return {'name':random_name(), 'value':random_value()} 字符串。

这应该解决它:

\0