#include"stdio.h"
#ifndef __strtokmethod_h__
#define __strtokmethod_h__
#include "stdio.h"
#include "stdarg.h"
#include "string.h"
typedef struct
{
char method[20];
char arg0[20];
char arg1[20];
char arg2[20];
char arg3[20];
char arg4[20];
} StrtokMethodTypeDef;
StrtokMethodTypeDef strtokParseMethodByteArr(char *input);
StrtokMethodTypeDef strtokParseMethodStr(const char *str);
#endif
StrtokMethodTypeDef strtokParseMethodByteArr(char *input)
{
StrtokMethodTypeDef srtd;
srtd.arg0[0]='_';
srtd.arg1[0]='_';
srtd.arg2[0]='_';
srtd.arg3[0]='_';
srtd.arg4[0]='_';
const char s[4] = "(,)";
char *token;
token = strtok(input, s);
int i = 0;
while (token != NULL)
{
if (i == 0)
{
sprintf(srtd.method, "%s", token);
}
if (i == 1)
{
sprintf(srtd.arg0, "%s", token);
}
if (i == 2)
{
sprintf(srtd.arg1, "%s", token);
}
if (i == 3)
{
sprintf(srtd.arg2, "%s", token);
}
if (i == 4)
{
sprintf(srtd.arg3, "%s", token);
}
if (i == 5)
{
sprintf(srtd.arg4, "%s", token);
}
token = strtok(NULL, s);
i++;
}
return srtd;
}
StrtokMethodTypeDef strtokParseMethodStr(const char *str)
{
StrtokMethodTypeDef srtd;
static char input[40] = {0};
strcpy(input, str);
return strtokParseMethodByteArr(input);
}
int main()
{
StrtokMethodTypeDef r = strtokParseMethodStr("s(1,8)");
printf("%s@%s,%s", r.method,r.arg0,r.arg1);
return 0;
}