【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.21426

STRTOK( )の最後の切り出し
投稿者---ラスク(2005/06/14 00:13:53)


環境:bcc55、WINDOWS2000

strtok関数で最後のものを(個々では性)取り出すとき、以下のように改行コード消すための処理が必要ですが、そのコードの意味(読み方)がわかりません:sei[strlen(sei)-1] = '\0';

2点目は、配列版sei[i][strlen(sei[i])-1] = '\0';もできるかと試したらできませんでした。なぜでしょう?

000: strcpy(num,    strtok(read_buf, ",")); /* 社員番号取得 */
001: strcpy(name,   strtok(NULL,     ",")); /* 名前取得 */
002: strcpy(sei,    strtok(NULL,     ",")); /* 性別取得 */
003: sei[strlen(sei)-1] = '\0';       /* 改行コードを消すため */




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:STRTOK( )の最後の切り出し 21429 RAPT 2005/06/14 00:22:14


No.21429

Re:STRTOK( )の最後の切り出し
投稿者---RAPT(2005/06/14 00:22:14)


> strtok関数で最後のものを(個々では性)取り出すとき、
> 以下のように改行コード消すための処理が必要
なぜ? その根拠は何ですか?
strtok() 自体にはそのような制約はありません。

改行コードもはじきたいなら、
strtok(NULL, ","); の代わりに
strtok(NULL, ",\n"); とすればいいでしょう。




この投稿にコメントする

削除パスワード

No.21437

Re:STRTOK( )の最後の切り出し
投稿者---ラスク(2005/06/14 00:42:31)


><pre>> strtok関数で最後のものを(個々では性)取り出すとき、
> 以下のように改行コード消すための処理が必要
なぜ? その根拠は何ですか?
strtok() 自体にはそのような制約はありません。

すいません。上記の表現は不適でした。
C言語はあまり詳しくないのでちゃんとした理由はわかりません。
ただ以下のことが言えます。
RAPTさんが下に揚げたコードで基本的にコンパイル・正常実行できるのですが、下のコードでは出力(画面)にゴミが入りちゃんとした結果が得られないことがありました。(性別の欄が表示されない、枠がおかしい。)
そこで探した上記のコードだとうまくいくのですが。
 コメントしかなくて、こまったということです。
 最後に言葉がわかりにくくてすいません。

 


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧