GCC 별도의 요소로 문자열을 구문 분석.는
이것은 문자열입니다
"v=0\no=sjphone 853596844 1765236571 IN IP4 10.10.10.10\ns=-\nc=IN IP4 10.10.10.10\nt=0 0\nm=audio 19112 RTP/AVP 8\na=rtpmap:8 PCMA/8000\na=ptime:20\n"
내가 이런 식으로 분리하려면 :
v=0
o=sjphone 853596844 1765236571 IN IP4 10.10.10.10
s=-
c=IN IP4 10.10.10.10
t=0 0
m=audio 19112 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=ptime:20
이 내 코드입니다 : 어떤 제안에 대한
void parse_sdp_string(const char *sdp_string)
{
#define MAX_NUM_ELEMENTS 16
char elements[MAX_NUM_ELEMENTS][MAX_STRING_LEN] = {{0}};
apr_size_t element_count = 0;
apr_size_t i = 0;
apr_size_t k = 0;
char sdp_str[MAX_NUM_ELEMENTS * MAX_STRING_LEN] = {0};
char *search_str = NULL;
/* Copy the string as to not corrupt the original */
apr_cpystrn(sdp_str, sdp_string, sizeof sdp_str);
search_str = sdp_str;
/* Find the last carriage return to compare that we are at the last one */
char *end_ptr = strrchr(search_str, '\n');
/* Increment until you find a carriage return */
while(*search_str != '\0') {
/* Fill the element in the array */
elements[i][k++] = *search_str;
search_str++;
/* nul terminate and reset before starting copy next element */
if(*search_str == '\n') {
elements[i][++k] = '\0';
/* Next element */
i++;
/* Set back to zero to copy from */
k = 0;
/* Check that we are not at the last '\n' */
if(search_str == end_ptr) {
/* This is the end, record the number of elements copied */
element_count = i;
break;
}
/* skip over the current \n as we don't need to copy that */
search_str++;
}
}
}
많은 감사합니다,
은 #include 허용 #입니까? –