char 数组未返回正确的大小
char array not returning correct size
Serial.begin(57600);
char testArray6[6] = {'1', '2', '3', '4', '5', '6'};
Serial.println(testArray6);
Serial.println(strlen(testArray6));
char testArray5[5] = {'0', '0', '0', '0', '0'};
Serial.println(strlen(testArray5));
char testArray4[4] = {'0', '0', '0', '0'};
Serial.println(strlen(testArray4));
char testArray3[3] = {'0', '0', '0'};
Serial.println(strlen(testArray3));
char testArray2[2] = {'0', '0'};
Serial.println(strlen(testArray2));
}
12345600000000000000
20
14
9
5
2
我不确定我初始化 char 数组的方式是否有问题,或者我是否错误地使用了 strlen 函数。
C 中的字符串是 空终止 字符序列,因此传递给 strlen()
的必须是指向 空终止[=] 的指针18=] 字符序列。
向数组添加终止空字符以修复:
Serial.begin(57600);
char testArray6[7] = {'1', '2', '3', '4', '5', '6', '[=10=]'};
Serial.println(testArray6);
Serial.println(strlen(testArray6));
char testArray5[6] = {'0', '0', '0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray5));
char testArray4[5] = {'0', '0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray4));
char testArray3[4] = {'0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray3));
char testArray2[3] = {'0', '0', '[=10=]'};
Serial.println(strlen(testArray2));
}
在 C
中,字符串必须以 [=12=]
结尾。
a[5] = {'1', '2', '3', '4', '[=10=]'};
Serial.begin(57600);
char testArray6[6] = {'1', '2', '3', '4', '5', '6'};
Serial.println(testArray6);
Serial.println(strlen(testArray6));
char testArray5[5] = {'0', '0', '0', '0', '0'};
Serial.println(strlen(testArray5));
char testArray4[4] = {'0', '0', '0', '0'};
Serial.println(strlen(testArray4));
char testArray3[3] = {'0', '0', '0'};
Serial.println(strlen(testArray3));
char testArray2[2] = {'0', '0'};
Serial.println(strlen(testArray2));
}
12345600000000000000
20
14
9
5
2
我不确定我初始化 char 数组的方式是否有问题,或者我是否错误地使用了 strlen 函数。
C 中的字符串是 空终止 字符序列,因此传递给 strlen()
的必须是指向 空终止[=] 的指针18=] 字符序列。
向数组添加终止空字符以修复:
Serial.begin(57600);
char testArray6[7] = {'1', '2', '3', '4', '5', '6', '[=10=]'};
Serial.println(testArray6);
Serial.println(strlen(testArray6));
char testArray5[6] = {'0', '0', '0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray5));
char testArray4[5] = {'0', '0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray4));
char testArray3[4] = {'0', '0', '0', '[=10=]'};
Serial.println(strlen(testArray3));
char testArray2[3] = {'0', '0', '[=10=]'};
Serial.println(strlen(testArray2));
}
在 C
中,字符串必须以 [=12=]
结尾。
a[5] = {'1', '2', '3', '4', '[=10=]'};