如何在字符数组中添加字符

时间:2017-03-01 07:55:08

标签: c arduino nodemcu

我想在字符数组中添加字符。我的代码是

char x[100];
int i;
void setup() {
Serial.begin(115200);
}
void loop() {
for ( i=0; i<11;i++)
{
  x[i]=(char)i;
}
Serial.println(strlen(x));
for (i=0;i<11;i++)
{
  Serial.print(x[i]);
}

delay(1000);
}

我期待数组为x [0] = 0,x [1] = 1,x [2] = 2 ...... x [10] = 10

但是当Serial.println(strlen(x));返回0时,数组似乎是空的 并且Serial.print(x[i]);什么都不打印。 如何将字符添加到数组???

2 个答案:

答案 0 :(得分:2)

Oups,C字符串按照惯例是以空字节结尾的char数组。所有strxx函数都遵循此约定。

由于数组的第一个字符是... 0,strlen在索引0处找到终止空值并正确地表示字符串的长度为0.

此外,代码为0到10(假设为ASCII)的所有字符都是对不可打印的字符。

我认为你想要做的是

for ( i=0; i<11;i++)
{
  x[i]= '0' + i; /* 0 to 9 and : */
}
x[11] = '\0';   /* terminate the array with a null to make it a C string */

答案 1 :(得分:0)

替换:x[i] = (char)i; 致:x[i]=(char) ( ((int) '0') + i ); 并添加x[11] = '\0';