네트워크 데이터의 페이로드를 "새 줄"또는 "줄 바꿈"문자 (10 진수, 16 진수 0x0A)로 분할해야했습니다. 그래서 strtok() 함수를 사용하여 몇 가지 문제가 발생했습니다. const char 문자열을 "new line"문자로 만들고 싶었습니다.const char *에서 strtok() 구분 기호로 보이지 않는 문자
프로토 : 이것은 잘못된 초기화했다
`strtok(char * StringToSplit, const char * Delimiters)`
:이 캐스팅없이 INT에서 포인터를 만드는 방법에 대한 경고했다
`const char delim[] = 10;`
을; Allthough는
printf("Delim: %x", delim)
는 strtok를에 사용 DELIM (0xa는)의 정확한 값 앱 충돌()을 나타내었다.
`const char * delim = 10;`
없음 경고 또는 오류
,의 printf (내가하지만, 예상대로) ("DELIM %의 X", DELIM는) 올바른 값 하지만 strtok를()를 작동하지 않았다했다.`char delim = 10;`
`(ofc strtok(..., &delim))`
이
일을 할 것 같았다하지만 난 여전히 CONST 문자의 PTR은() 함수를 strtok를 할 것으로 예상 된 비 const를 숯불 PTR 전달에 대해 경고를 받았습니다.`char delim[] = "#";` `delim[0] = 10;`
마지막으로이 경고없이 작동하는 것 같다.
`char tmp[] = "#";` `tmp[0] = 10;` `const char *delim = tmp;`
질문은 strtok를() 함수와 같은 보이지 않는 문자를 전달하는 가장 간단하고 우아한 방법으로 무엇을 할 것입니까? 제게 이것은 단지 코드가 엉망인 것처럼 느껴집니다.