【发布时间】:2020-07-22 00:26:11
【问题描述】:
如果程序看到,我的目标是从串行读取一些字符串,例如 234124!3455addg#5867 !它应该开始将它添加到一个 char 数组中,如果它看到 # 它应该返回该 char 数组的前 4 个元素,对于我的示例,返回应该是 3455。我该如何解决它?我使用 String 类制作了这个,但我需要将它实现为 char 数组。 我对 arduino 很陌生,所以请说清楚,谢谢。 这是我的代码:
const char *s = "123123123!0037selam#aaaaSDSDa";
const char *CHAR1 = "!";
const char *CHAR2 = "#";
char *target = NULL;
char *start, *end;
void setup() {
Serial.begin(9600);
}
void loop() {
if ( start = strstr( s, CHAR1 ) )
{
start += strlen( CHAR1 );
if ( end = strstr( start, CHAR2 ) )
{
target = ( char * )malloc( end - start + 1 );
memcpy( target, start, end - start );
target[end - start] = '\0';
}
}
if ( target )
{
for(int i=0; i<4;i++)
Serial.print( target[i]);
}
free( target );
return 0;
}
【问题讨论】:
-
您提供了一些代码,但没有解释您遇到的问题。请注意,Arduino 使用 C++ 而不是 C。
-
我的问题是它不能完全工作。我无法做出任何有意义的事情,所以我向问题寻求帮助。
标签: c++ arrays arduino char arduino-uno