2012-02-13 15 views
1

すべての解析例を見てきましたが、文字列やその他のランダムな方法で問題を解決できませんでした。 私の問題は、テキストファイルから読み込んだとき、私が抽出したトークンは、トークン自体と、ランダムな文字と記号の束で出てくることです。たとえば、テキストファイル内の行は、 ... となります。create_device digital_controller "Left Turn Lamp" 51 ... と私は、ポインタ配列* tklist []で各トークンを指し示すことができます。 しかし、私が解析し、指摘するとき、私は得る - ... を作成する ... 同様の方法でお互いのトークンを取得すると一緒に。 トークンを抽出するためのコードです。 私はチェックして位置が正しいはずであることをダブルチェックしたので、私のトークンの位置が正しいとします。それ以外の場合、私は文字の混乱に含まれたい単語の一部しか取得しません。 クラインは、「char型のクライン[]」として宣言され、あなたがあなたのCStringのの末尾のヌルターミネータを必要とするラインchar型のデータ型を使用したC++での文字列の解析

​​
+3

あなたのNULターミネータですか? –

答えて

5

のための文字の配列です。

1

トークンをtklist[next_token]にコピーしましたが、ヌル文字で終了していないので、coutは最後を過ぎて続きます。あなたは試みることができる次のいずれか

memset(tklist[next_token], '\0', token_length + 1); 
memcpy(tklist[next_token], &cline[startTokenPosition], token_length); 

または

memcpy(tklist[next_token], &cline[startTokenPosition], token_length); 
tklist[text_token][token_length] = '\0'; 
関連する問題