お世話になります
strtokの動作ですが
int main(void) { char str[] = "ABCD ef.1234.G"; char *tp; /* スペース.を区切りに文字列を抽出 */ tp = strtok( str, " ." ); puts( tp ); while ( tp != NULL ) { tp = strtok( NULL," ." ); if ( tp != NULL ) puts( tp ); } return 0; }
【実行結果】
ABCD ef 1234 Gであろうと思います、が区切り\0が出力されません(下記ダンプは下を実行後です)FFF049AE 39 36 30 30 20 45 20 38 : 20 31 00 20 2C 0D 09 00 9600 E 8 1 , FFF049BE 25 73 20 25 73 20 25 73 : 20 25 73 0D 00 20 2E 2C %s %s %s %s .,str[strlen(str)]=' ';str=strtok(str," ,\r\t");本来ならば39 36 30 30 00 45 であると思うのですが昨今のエラー発生で_s1ptr=NULL; // Remove the comment when you use strtok()(E) E0562310 E0562310:Undefined external symbol "__s1ptr" referenced in "DefaultBuild\resetprg.obj" gen.mtpj_s1ptr=NULL;をコメントアウトにしていることが関係しているのでしょうか?教えていただけないでしょうか、よろしくお願いします。