카테고리 없음

sscanf를 활용한 쿼리 파라미터 파싱

behonestar 2017. 7. 6. 19:32
샘플 코드

string streamName = "ce2b87e233cb_wlHByc?token=abcd&expiration=1234";

char strStreamName[64] = {0};

char strToken[128] = {0};

char strExpiration[64] = {0};


sscanf(STR(streamName), "%63[^?]?token=%127[^&]&expiration=%63[^&]", strStreamName, strToken, strExpiration);


설명

%63[^?] : ^가 나오기 전까지의 문자열 (최대 64자)
%127[^&] : &가 나오기 전까지의 문자열 (최대 128자)
%63[^&] : &가 나오기 전까지의 문자열 (최대 63자)

주의
- token의 길이가 127자를 초과하면 expiration이 파싱되지 않는다.
- 파라미터 순서가 바뀌면 파싱되지 않는다.