-1
Arduino에서 분해 된 문자열을 다른 문자열과 비교하려고하는데 작동하지 않습니다. 분할 된 문자열은 직렬 포트에서 읽습니다.Arduino - 분할 문자열과 다른 문자열 비교
int count_delimiters(char str[], const char* delimiters) {
int i, j, result = 0;
for (i = 0; i < strlen(str); ++i) {
for (j = 0; j < strlen(delimiters); ++j) {
if (str[i] == delimiters[j]) {
++result;
}
}
}
return (result + 1);
}
char** split(char str[], const char* delimiters) {
int result_size = count_delimiters(str, delimiters);
int i = 0;
char* result[result_size];
char* pch = strtok(str, ",");
while (pch != NULL)
{
result[i] = pch;
pch = strtok(NULL, ",");
++i;
}
return result;
}
내가 다른 문자열로 폭발 문자열을 비교하려고 부분은 다음과 같습니다 :
char input_array[input.length()];
input.toCharArray(input_array, (input.length() + 1));
exploded = split(input_array, ",");
if ("$test" == exploded[0]) {
Serial.println("match"); // This code is never reached.
}
모든
첫째,이 내가 문자열을 폭발에 사용하는 기능입니다 $ 테스트를 입력하면 시리얼 모니터에 다른이 표시되지만 일치하는 내용이 인쇄 될 것으로 예상되지만 아무 것도 인쇄되지 않습니다. 내가 Serial.println(exploded[0]);
일 경우 $ 테스트을 출력해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
는 이미 \r
, \n
및 \0
같은 인쇄 할 수없는 문자를 찾기 위해 노력했습니다,하지만,이 중 하나를 포함하지 않는 것 때문에 나는 "$ 테스트 \ r을"또는 다른 사람이 확인하는 경우 여전히 사실을 반환하지 않습니다. 이 라인