#c
#c
Вопрос:
Использование сегмента TLV в формате (значение длины тега), например AB023AC0234AD06MASTERAE05SPORT
Этот сегмент TLV представляет собой строку c, и когда он появится, я хотел бы отредактировать/изменить некоторую длину/значения определенных тегов, например, предположим, что у тега AD есть значение MASTER, поэтому я хотел бы отредактировать и заменить его на VISA, чтобы длина также составляла от 06 до 04.
Я попытался проанализировать на C выше TLV, но был бы признателен, если бы мне помогли в логике, как редактировать эти значения и передавать новые значения в строке TLV.
Входящая строка TLV — AB023AC0234 AD06MASTER AE05SPORT Ожидаемая строка TLV — AB023AC0234 AD04VISA AE05SPORT
Фрагмент кода:
char TagID[4], TagLen[4]; char TLVData = "AB023AC0234AD06MASTERAE05SPORT"; memset(TLVData,'',sizeof(TLVData)); memset(TagID,'',sizeof(TagID)); memset(TagLen,'',sizeof(TagLen)); int it(0); while(it lt; strlen(TLVData)) { if(strlen(TLVData)-it) gt; 1) { strncpy(TagID, TLVData it, 2); TagID[2] = ''; } it = it 2; if((strlen(TLVData)-it) gt; 2) { strncpy(TagLen, TLVData it, 2); TagLen[2] = ''; } it = it 2; if((strlen(TLVData)-it) gt;= atoi(TagLen)) { if(!strcmp(TagID,"AD")) { /*edit value of tag AD as well as length */ } } }