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

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

 詳しくはこちら


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

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


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

No.21513

文字列の入れ替え
投稿者---キック(2005/06/20 18:49:23)


お世話になります。キックです。
ある文字列の中に"$"が付く文字列を別の文字列を替えたいというプログラムを作っていましたが、途中までしか精一杯です。
お手数ですが、ご教授よろしくお願い申し上げます。

文字列:"?DAYS+$DAYS+DAYE+$DAYE"
$DAYSを0618を入れ替える。
$DAYEを0623を入れ替える。

<PRE>
for( i_i = 0 ; i_i < strlen( c_para ) ; ) {

for( i_j = 0 ; i_j < strlen( c_para ) ; i_j ++ ) {
if( c_para[i_j] == '$' ) {
i_j ++ ;
break ;
}
}

strncpy( c_buf, &c_para[i_i], i_j - i_i - 1 ) ;
     :

}
</PRE>


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字列の入れ替え 21514 Blue 2005/06/20 19:01:26


No.21514

Re:文字列の入れ替え
投稿者---Blue(2005/06/20 19:01:26)


仕様がはっきりしません。
$からどこまでの文字列が置換対象なのでしょうか?
演算子は分離符になっているのでしょうか?
置換後の文字列はどっから持ってきているのでしょうか?
また、置換後の文字列によって全体の文字列長が増えるまたは減ることはあるのでしょうか?
(ここがいちばんむずいと思う)

それと、
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!



この投稿にコメントする

削除パスワード

No.21515

Re:文字列の入れ替え
投稿者---キック(2005/06/20 19:22:31)


><pre>仕様がはっきりしません。
>$からどこまでの文字列が置換対象なのでしょうか?
>演算子は分離符になっているのでしょうか?
>置換後の文字列はどっから持ってきているのでしょうか?
>また、置換後の文字列によって全体の文字列長が増えるまたは減ることは>あるのでしょうか?
>(ここがいちばんむずいと思う)
>
>それと、
> ※環境(OSとコンパイラ)や症状は具体的に詳しく!</pre>

申し訳ありません。
環境は
SunOS 5.8 C言語

文字列("?DAYS+$DAYS+DAYE+$DAYE")を
$DAYSにファイルから読み込んだデータ(例:0618)を置換します。
$DAYEと同様です。→データ(例:0623)
ファイル処理は省略しています。

置換後の文字列長の増減はありません。1回のみです。
$DAYSと$DAYEを置換したら、終了です。
よろしくお願い申し上げます。



この投稿にコメントする

削除パスワード

No.21516

Re:文字列の入れ替え
投稿者---Blue(2005/06/20 19:33:14)


>置換後の文字列長の増減はありません。1回のみです。
>$DAYSと$DAYEを置換したら、終了です。
>よろしくお願い申し上げます。
聞きたいのは、文字列の領域を増やさないといけないのかということです。

例)
char s[]="$DAYE"
/* $DAYE→000618 に置換 */
/* 5文字から6文字へ */

sの領域が増える!(というか例題では減っていますが。)
    ↓
sの領域拡張しないといけない!(←これが面倒)

ということです。

>$DAYSにファイルから読み込んだデータ(例:0618)を置換します。
>$DAYEと同様です。→データ(例:0623)
ということは
ファイルには
$DAYS=0618
$DAYE=0623
という感じで書かれているのでしょうか?

もし(極端な例ですが)
$D=000
$DAYE=0111
$D$DAYE=0002
$DAYS+DAYE=1
だったら
"?DAYS+$DAYS+DAYE+$DAYE"
をどう置換するのでしょうか?

>$からどこまでの文字列が置換対象なのでしょうか?
>演算子は分離符になっているのでしょうか?
の定義を明確にしてください。

# C言語だと結構難しいですね。C++なら。。。



この投稿にコメントする

削除パスワード

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