C言語の初歩的な質問です。

このエントリーをはてなブックマークに追加
1超初心者
1 120.2 140 140-200.2
2 110.8 130 130-195.5
:
みたいなデータを読み込みこんで、以下のようなフォーマットに
書き換えたいのですが、どうすればよいでしょうか?
1 120.2 140 140 -200.2
2 110.8 130 130 -195.5
のように最後の数値データの間にスペースを入れるだけです。
Cじゃなくてもperlでもawkでも良いです。
教えてください。
2デフォルトの名無しさん:01/12/18 10:11
単発スレは嫌われます。
質問に適したスレがいくつもあるでしょ。
>>1
エディタで[-]を[ -]に置換すればいいんでない?
4デフォルトの名無しさん:01/12/18 10:17
こんな質問でスレ立てるなあーー!!
C言語のスレッドにいけば即効で答えてもらえると思うよ。
私はわからないけどw
お前は答えを得る機会を永遠に失った
これからは質問スレだろう初心者スレだろう
がお前の来たスレを徹底的に
荒らしてやる
2ch超初心者 > 1
いくらなんでもこの質問はないよ。
1はまあ、次から気をつけてね。
8:01/12/18 12:21
>>2-7
自分の知らないこと聞かれて怒ってるアフォ
>>8
うん、さっぱりわからない。
だから2ch以外の場所で聞いてくれ。
最近デンパが多くな〜い?
>>1
いちいちスレ立てなきゃ答えてあげてもよかったのに。
逆にこんな奴でもawkを知ってる事におどろき
つーかなぜか嬉しいw
13デフォルトの名無しさん :01/12/18 14:49
s/- /-/
14デフォルトの名無しさん:01/12/18 14:56
s/(\S+\s\S+\s\S+\s\S+)-(\S)/$1 -$2/

だめか?
15@:01/12/18 16:45
$_=~s/(-\d+)$/ ($1)/;
符号が必ずあるならこれでよいかと
16 :01/12/18 16:58
>>1はIQ100未満
17ネタ?:01/12/18 17:03
'-'捜して前にスペース入れろ
ネタじゃなかったら真性の厨だな
18デフォルトの名無しさん:01/12/18 20:06
>>15
それじゃ何も変わらん気がするが、そんな俺はDQN?
19デフォルトの名無しさん:01/12/18 23:19
メモ帳で置換しろ。
s/-\d+\.?\d+?$/ $&/;
21(。。)ゝ:02/01/16 09:36
テキストからデータを読む処理を行っているのですが
改行(\n)が入ってきてしまいます。
改行削除処理を行いたいのですが良い方法はないでしょうか?
よろしくお願いします。
22デフォルトの名無しさん:02/01/16 09:46
>>21さんに便乗して・・・
テキストからデータを読みこみ、構造体にセットしていく処理で、
何バイト分を文字列として構造体のメンバにコピーする時に、
手動で\0を付加しているのですが、もっとスマートな方法は
有りませんでしょうか?
23 :02/01/16 09:51
手動でって、実行するたびに入力してるの?:)
24日下部圭子 ◆ib749tYo :02/01/16 09:57
In article >>21, (。。)ゝ/21 wrote:

もう少し質問の仕方を考えましょう。

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
chomp(char *buf)
{
if (buf[strlen(buf)-1] == '\n') buf[strlen(buf)-1] = '\0';
}
26( ・∀・)つ旦:02/01/16 10:35
ケイコタン ハァハァ
27(。。)ゝ:02/01/16 11:03
>>24,25
ありがとうございました。
>>26
セクハラ?
s/^(.*)(-.*)$/$1 $2/g;
2922:02/01/16 11:37
言葉足らずですいません。
リストビューのデータを管理するために
#define ITEM_LEN 32
#define SUBITEM_LEN 100
char buf *
char temp[ITEM_LEN ];
....

typedef struct taghoge
{
char item[ITEM_LEN];
char subitem[SUBITEM_LEN];
int category;
.....
}ListData
という感じの構造体を
ListData listdata[255];と宣言して、ファイルから読みこんだデータを

for(i=0;i<hoge;i++) { //hogeはファイルサイズ/sizeof(listdata)
strncpy(temp,buf[0] + sizeof(listdata) * i,ITEM_LEN - 1);
 strncpy(temp[ITEM_LEN - 1],\0)
....
}
といったなんか情けない感じになってしまってまして・・・
30日下部圭子 ◆ib749tYo :02/01/16 11:56
In article >>29, 22/29 wrote:

そのコードだと'\0'がどうこう以前に、正常に動いていないと思いますが...

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------
3122:02/01/16 12:22
何の為にわざわざ構造体宣言してるんだか・・・
逝って来ます。
申し訳ありませんでした。
strcpy系で"\0"って失敗した記憶があるけど、
気のせいかな。

あと、一般的か知らないけど、

lp=szbuf;
strcpy(sztemp,lp);
lp+=strlen(lp)+1;
は俺はよくやってた。

こーなってきて他の知識もあいまって、既成オブジェクト使うか
自前オブジェクト作るか考えるけど、やっぱ当面lp+=の方向でいいや。
test