文字列の中から必要なデータを抜き出す
VC++6.0 です。
計測機器から受信したデータ(文字列)の中から、必要なデータだけを抜き出したいのですが、
うまく抜き出すことが出来ません。アドバイスいただけませんでしょうか?
受信する文字列は 伝送制御キャラクタSTX(0x02) "文字列" 伝送制御キャラクタETX(0x03)
のように受信します。
抜き出すための目印?がキーボードで入力できるような文字列の場合は過去ログにありました以下のコードで
抜き出すことが可能でした。
抜き出すための目印を 0x02 や 0x03 にする為にはどうしたら良いでしょうか?
//文字列版
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *cut(const char *str, const char *ss, const char *es, char *buff){
/* str の ss の次から es の前までの文字列をbuff に切り出す */
char *wk, *s, *e, *c;
wk=strdup(str); if(wk==NULL)return NULL;
s=strstr(wk, ss); if(s==NULL){ free(wk); return NULL;}
c=s+strlen(ss);
e=strstr(c, es); if(e==NULL){ free(wk); return NULL; }
*e='\0';
strcpy(buff, c);
free(wk);
return buff;
}
int main(void){
const char url[]="?http://www.sample.ne.jp/";?
char buff[32];
printf("//~/:%s\n", cut(url , "//", "/", buff));
return 0;
}
お礼
strcpy_s(test.str, "test")でできました!ありがとうございました!