::amf aa :amfe のようなものの間で解析しようとしています。しかし、いくつかの余分な値が文字列に追加されています。コードでは、すべてがより具体的です
char *aparse(char *str,char *a1,char *a2)
{
char *aa;
char *cr = strstr(str,a1);
char *sr = strstr(str,a2);
int first = cr-str;
int second = sr-str;
int ftag = first+5;
int stag = second-1;
long wtag = stag-ftag;
int i=0;
aa = malloc(wtag);
for (i=0; i<wtag; i++)
{
aa[i] = str[ftag];
ftag++;
}
printf ("%s\n",aa);
return aa;
}
これは私のパーサーコードです。
char *aa = ":amf gosadaogle :amfe :fil doc :file";
char *music = aparse(aa,":amf",":amfe");
char *o = aparse(aa,":fil",":file");
これは私が関数を呼び出す方法です.しかし、文字列の1つには、私が知らない場所から来る余分な文字が付属しています.それはo = docのようなものですが、音楽= gosadaogle.やりたいmalloc.どうすれば解決できますか
申し訳ありませんが、私の問題を明確に伝えることができないと思います
これは説明します
:amf と :amfe の間の値を抽出しようとしています。音楽または o 変数に追加されたいくつかの余分な文字を aparse で抽出している間