ページ 11

C言語について

Posted: 2013年1月27日(日) 03:42
by DeepBlue
********
a_b_c_d_
ef_g_hi
jkl_m_a_
********

といったことが書かれたテキストファイルを読み込み、
_(スペース)で区切って、以下のように2次元配列に格納し、出現頻度をカウントするプログラムを作っているのですが・・・


********
a[0][10]=a
a[1][10]=b
a[2][10]=c
a[3][10]=d
a[4][10]=ef
a[5][10]=g
a[6][10]=hi
a[7][10]=jkl
a[8][10]=m
a[9][10]=a
********



実行結果はこうなるように考えています。
********
a ・・・ 2
b ・・・ 1
c ・・・ 1
d ・・・ 1
ef ・・・ 1
g ・・・ 1
hi ・・・ 1
jkl ・・・ 1
m ・・・ 1
********


ファイルから_(スペース)で区切って、配列に格納する部分がうまくいくません・・・
どう書けばいいですか?

Re: C言語について

Posted: 2013年1月27日(日) 08:19
by へにっくす
スペースで区切る処理は、strtok関数を使うのが手っ取り早いです。
strtokで検索かけてみるといいです。

コードをさらせば、さらにアドバイスがもらえるんじゃないかな?

Re: C言語について

Posted: 2013年1月27日(日) 09:23
by みけCAT
ファイルに********は含まれていますか?
エラー処理を考えないのでしたら、素直にscanfで読み込めばいいと思います。
なぜ2次元配列にする必要があるのですか?
なぜ最初から2番目の添字で10を指定しているのですか?
テキストファイルに書かれているアルファベット文字列は何個くらいありますか?
10個ですか?100個ですか?10,000個ですか?1,000,000個ですか?
一つのアルファベット文字列の最大の長さはどのくらいですか?

Re: C言語について

Posted: 2013年1月27日(日) 16:48
by みけCAT
すいません。
配列の型が分かりませんが、ポインタで格納したいのでしたら、
一行ずつ読み込んでstrtokを使用した方がいいかもしれません。