Изменение значений в сегменте TLV в C

#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 */   }  } }