- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語でテキストファイルから読み込み、他のファイルに書き込む方法を教えて頂けませんか?)
C言語でテキストファイルの一部を削除して出力する方法
このQ&Aのポイント
- C言語を使用してテキストファイルから特定の部分を削除し、シンプルな形式で出力する方法を教えてください。
- 具体的には、上記のテキストファイルの長い行をIPアドレスとTCPサイズに短縮して出力したいです。
- また、ハッシュタグにはC言語 #テキストファイル #出力 方法が含まれます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
C言語でやるなら、strtok()等の文字列処理系の関数でごりごりやるしかないと思います。 たとえば対象となる文章の中のカッコ()の数、Pの位置が毎回同じなのであれば、その特徴を元に抽出させるような方法しかないかと。 char str[] = "22:26:37.617570 IP (tos 0x10, ttl 64, id 6677, offset 0, flags [DF], proto: TCP (6), length: 100) 10.1.4.12.ssh > 10.1.4.99.54812: P 1893099304:1893099352(48) ack 3531241764 win 1430 <nop,nop,timestamp 1598028307 370716255>"; char *tok; char buf[256]=""; // 前文を取得 tok = strtok(str, "("); strcpy( buf, tok); // 中文を取得 tok = strtok(NULL, ")"); tok = strtok(NULL, ")"); *(tok + 1) = '\0'; tok = strtok(NULL, "P"); strcat(buf, tok); // 後文を取得 tok = strtok(NULL, "("); tok = strtok(NULL, ")"); strcat(buf, "tcp "); strcat(buf, tok); printf("%s", buf);
お礼
ご回答有難う御座います。 参考にさせて頂きますね。