저는 C에 익숙하며 문자 배열 (Ardunio의 직렬 포트에서 수신)을 분할하려고합니다. 자습서를 찾아 보았습니다. 제발 디버깅 좀 도와주세요.혼란 스럽습니다 : C의 포인터와 문자 배열
char action[10];
unsigned long duration;
void split(char input[20])
{
char *param, *ptr;
param = strtok_r(input, "#", &ptr);
action = *param; // Need help with this line
param = strtok_r(NULL, "!", &ptr);
duration = (unsigned long) *param; // Need help with this line
}
내가 이해 한 바로는 strtok_r은 구분 기호 (#) 바로 뒤에있는 문자에 대한 포인터를 반환합니다. 그래서 action []이 구분자까지 입력 []의 부분 집합 문자 배열이되기를 원한다면 어떻게해야합니까?
편집 : 입력 내용은 다음과 같습니다. "left # 1000!"
어레이와 특별한 선언 제외 '='연산자 "부여"할 수 없다. 여기에'char * action' 포인터가 필요합니다. 그리고'unsigned long'에서 길이를 얻으려면 문자를 먼저 숫자로 변환해야합니다 (이 경우'strtoul '). – nhahtdh
소스 문자열의 예를 게시 할 수 있습니까? 'paramparamparamparam # duration.NNN'과 같은가요? –
입력에'! '를 종결 기호로 사용하는 경우 구분 기호 목록에 추가하십시오.' "#!"' – dasblinkenlight