掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

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

掲示板2

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

No.24223

strrchr関数について
投稿者---iemon(2005/11/18 23:44:10)


早速ですが、質問をさせて下さい。
strrchrにて文字列の最後から文字を検索して値が取得出来ますが、
この検索した値の前の値をとる時にはどのようにすれば良いでしょうか?

例)
データ内容 
Data = "/abc/def/ghi/***.txt"
atai = strrchr(Data,'/');
この場合は、"/***.txt"が取得されるのですが、上記の質問では、
"/abc/def/ghi"の値が欲しいのです。

教えて下さい。 宜しくお願い致します。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:strrchr関数について 24224 ぽこ 2005/11/18 23:49:01
<子記事> Re:strrchr関数について 24225 まきじ 2005/11/18 23:50:48
<子記事> Re:strrchr関数について 24230 iemon 2005/11/19 01:10:12


No.24224

Re:strrchr関数について
投稿者---ぽこ(2005/11/18 23:49:01)


>データ内容 
>Data = "/abc/def/ghi/***.txt"
> atai = strrchr(Data,'/');
> この場合は、"/***.txt"が取得されるのですが、上記の質問では、
> "/abc/def/ghi"の値が欲しいのです。

Dataが指すところからataiが指すところの一つ前までを
コピーすればよいのでは?


この投稿にコメントする

削除パスワード

No.24225

Re:strrchr関数について
投稿者---まきじ(2005/11/18 23:50:48)


>Data = "/abc/def/ghi/***.txt"
> atai = strrchr(Data,'/');
> この場合は、"/***.txt"が取得されるのですが、

最初に見つかった '/' へのポインタ(&Data[12])です。

>上記の質問では、"/abc/def/ghi"の値が欲しいのです。

'/' を '\0' に変えれば取得できますね。


この投稿にコメントする

削除パスワード

No.24227

Re:strrchr関数について
投稿者---ぽこ(2005/11/19 00:00:02)


>'/' を '\0' に変えれば取得できますね。

リテラルを書き換えるのは危険では?


この投稿にコメントする

削除パスワード

No.24229

Re:strrchr関数について
投稿者---まきじ(2005/11/19 00:13:33)


>リテラルを書き換えるのは危険では?

Data の宣言が判らないので何とも云えませんが・・

char *Data = "/abc/def/ghi/***.txt";

なら文字列リテラルは書き換え可能な左辺値でないので
書き換えをするべきではないです。

char Data[] = "/abc/def/ghi/***.txt";

とすれば書き換え可能な左辺値になります。


この投稿にコメントする

削除パスワード

No.24230

Re:strrchr関数について
投稿者---iemon(2005/11/19 01:10:12)


皆さんありがとう御座いました。

何とか解決できました。
また宜しくお願い致します。


この投稿にコメントする

削除パスワード

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