#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int IndexOf(char *texto,char c, int vez)
{
int i =0;
int index =0;
while (texto[index]!='\0')
{
if (texto[index]==c)
{
i++;
if (i==vez)
return index;
}
index++;
}
return -1;
}
///Subdivide uma string
char *SubString(char *texto, int inicio,int fim)
{
if (fim<inicio)
{
char *retorno
= ((char*)malloc(sizeof(char))); retorno[0]='\0';
return retorno;
}
else if (inicio==fim)
{
char *retorno
= ((char*)malloc(sizeof(char)+1)); retorno[0] = texto[inicio];
retorno[1] = '\0';
return retorno;
}
else
{
int i=0,j=0;
int t = ((fim-inicio)+2);
char *retorno
= ((char*)malloc(sizeof(char)*t
)); while (texto[i]!='\0' && j<(t-1))
{
if (i>=inicio && i<=fim)
{
retorno[j] = texto[i];
j++;
}
i++;
}
retorno[j] = '\0';
return retorno;
}
}
int main(void) {
char linha[1000]="ALGUMA COISA,ALGO=TESTE,FIM";
int i = IndexOf(linha,',',1);
int f = IndexOf(linha,'=',1);
int n = IndexOf(linha,',',2);
printf("Campo: %s\n", SubString
(linha
,i
+1,f
-1)); printf("Valor: %s\n", SubString
(linha
,f
+1,n
-1)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKCgoKaW50IEluZGV4T2YoY2hhciAqdGV4dG8sY2hhciBjLCBpbnQgdmV6KQp7CiAgICBpbnQgaSA9MDsKICAgIGludCBpbmRleCA9MDsKICAgIHdoaWxlICh0ZXh0b1tpbmRleF0hPSdcMCcpCiAgICB7CiAgICAgICAgaWYgKHRleHRvW2luZGV4XT09YykKICAgICAgICB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgaWYgKGk9PXZleikKICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKICAgICAgICB9CgogICAgICAgIGluZGV4Kys7CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KCi8vL1N1YmRpdmlkZSB1bWEgc3RyaW5nCmNoYXIgKlN1YlN0cmluZyhjaGFyICp0ZXh0bywgaW50IGluaWNpbyxpbnQgZmltKQp7CiAgICBpZiAoZmltPGluaWNpbykKICAgIHsKICAgICAgICBjaGFyICpyZXRvcm5vID0gKChjaGFyKiltYWxsb2Moc2l6ZW9mKGNoYXIpKSk7CiAgICAgcmV0b3Jub1swXT0nXDAnOwogICAgICAgICAgcmV0dXJuIHJldG9ybm87CiAgICB9CiAgICBlbHNlIGlmIChpbmljaW89PWZpbSkKICAgIHsKICAgICAgICBjaGFyICpyZXRvcm5vID0gKChjaGFyKiltYWxsb2Moc2l6ZW9mKGNoYXIpKzEpKTsKICAgICAgICByZXRvcm5vWzBdID0gdGV4dG9baW5pY2lvXTsKICAgICAgICByZXRvcm5vWzFdID0gJ1wwJzsKICAgICAgICByZXR1cm4gIHJldG9ybm87CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICBpbnQgaT0wLGo9MDsKICAgIGludCB0ID0gKChmaW0taW5pY2lvKSsyKTsKICAgIGNoYXIgKnJldG9ybm8gPSAoKGNoYXIqKW1hbGxvYyhzaXplb2YoY2hhcikqdCkpOwogICAgd2hpbGUgKHRleHRvW2ldIT0nXDAnICYmIGo8KHQtMSkpCiAgICB7CiAgICAgICAgaWYgKGk+PWluaWNpbyAmJiBpPD1maW0pCiAgICAgICAgewogICAgICAgICAgICByZXRvcm5vW2pdID0gdGV4dG9baV07CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgfQoKICAgIHJldG9ybm9bal0gPSAnXDAnOwogICAgcmV0dXJuIHJldG9ybm87CiAgICB9Cn0KCgoKCgppbnQgbWFpbih2b2lkKSB7CiAgICBjaGFyIGxpbmhhWzEwMDBdPSJBTEdVTUEgQ09JU0EsQUxHTz1URVNURSxGSU0iOwogICAgCiAgICBwcmludGYoIkxpbmhhOiAlc1xuIiwgbGluaGEpOwogICAgaW50IGkgPSBJbmRleE9mKGxpbmhhLCcsJywxKTsKICAgIGludCBmID0gSW5kZXhPZihsaW5oYSwnPScsMSk7CiAgICBpbnQgbiA9IEluZGV4T2YobGluaGEsJywnLDIpOwogICAgcHJpbnRmKCJDYW1wbzogJXNcbiIsIFN1YlN0cmluZyhsaW5oYSxpKzEsZi0xKSk7CiAgICBwcmludGYoIlZhbG9yOiAlc1xuIiwgU3ViU3RyaW5nKGxpbmhhLGYrMSxuLTEpKTsKICAgIHJldHVybiAwOwp9Cg==