***すれ立てるまでもない質問はここで 第12刷***
952 :
デフォルトの名無しさん:02/04/13 14:30
英語の文をよみこんで、その文字数、単語数などをカウントしたいんですが
#include <stdio.h>
void main(void) {
char c;
int ln, sp, ch,InWord,Wcnt;
/* 文字数のカウント */
ln = 0; /* 改行 (\n) 数カウント用変数の初期化 */
sp = 0; /* 空白文字 (改行除く) 数カウント用変数の初期化 */
ch = 0; /* 文字数カウント用変数の初期化 */
Wcnt = 0; /* 単語数数カウント */
while (scanf("%s",c)!=EOF) {
if (c == '\n') { /* 改行 */
ln++;
} else if (isspace(c)) { /* 空白文字 */
sp++;
} else { /* 文字数 */
ch++;
}
if (isspace(c)) {
InWord=0;
}
else if(!InWord){
InWord=1;
Wcnt++; /*単語数*/
}
}
/* 結果の出力 */
printf(" 改行 : %2d\n", ln);
printf(" 空白文字 : %2d\n", sp);
printf(" 文字数 : %2d\n", ch);
printf("単語数 : %2d\n",Wcnt);
}
一応組みましたがなんかおかしいです。正しいのを教えてください。
OSはリナックスです。
>>952 パッと見た感じ、問題は一つ。
while (scanf("%s", c) != EOF) {
を
while ((c = (char)getchar()) != EOF) {
って感じでやってみてわ。文字(char)と文字列(char *)は違うものだよ。
>>952 単語数がそれでは一つ少なくカウントされるぞ。
あとは
>>953の言うことを直せばいいはず。
956 :
名無しさん@お腹いっぱい。:02/04/13 14:59
>>914 > その命令に素直に展開されるコードは当然そういう動きになる。
今手元に規格書ないんだけど、C的には「当然」じゃなくて、
VC++6が「おかしい」んじゃないの?
RegisterClassExが0返してくるんだが・・・
ちなみにその後、気にせずCreateWindowするとNULLが帰ってきてどうにもならん
なんでだろ?
>>952 書き忘れと思うけど
#include <ctype.h>も取り込まないと
isspace使えないよ。
自己解決した
ハドゥカティ~
wcex.cbClsExtra = 0;
wcex.cbClsExtra = 0;
と、同じのが二つあって、cbWndExtraが初期化されず40以上になってた
首吊って逝ってくるわ
VC++6.0で使える
glide.h
てありますか?ページ知ってたら教えて下さいな。
>>956 ANSI C++では、シフト命令が論理シフトであるか、算術シフトであるか、
その他詳細の動作を規定してなかったはずです。
ありました。んじゃ。
964 :
名無しさん@お腹いっぱい。:02/04/13 16:16
>>964 いや、だから、「その他詳細の動作」を定めていない、と。
論理・算術は代表的に名前が挙がるから書いただけ
967 :
デフォルトの名無しさん:02/04/13 21:38
Cの勉強に人のコード見たいんですが何かソースありのライブラリ無いですか?
>>967 /usr/src/'uname -v'/
970 :
デフォルトの名無しさん:02/04/13 21:49
標準以外で何か利用価値のある奴がいい
972 :
デフォルトの名無しさん:02/04/14 00:20
973 :
デフォルトの名無しさん:02/04/14 00:38
>>967 午後のこーだとかはソース公開してるよ。
あるフォーマットのファイルを読み書きしたいとする。
そのフォーマットについての参考文献やweb資料がほぼ皆無で、
唯一参考になりそうなのは公開されてるソースファイルだけという場合、
1 ソースをそのまま(自分なりに改良しながら)自分のアプリに取り込む
2 ソースからファイルの仕様を導き出し、自分で1からコーディングする
どうしますか?
1の場合、ライセンス関係で問題が出る可能性もあるし、
普通はどうするの?
そのアプリケーションと通信して云々するのはどうなのよ?
976 :
デフォルトの名無しさん:02/04/14 07:01
>>975 あくまで自分のアプリにそのフォーマットのファイルを
読み書きする機能を付ける場合の話です。
ようは、実際に実現したい機能があって質問しているわけではなく、
一般的にっていう話です。
# 関係ないけど、GPLのソースを見たくてしょうがないんですが、
# 見てしまうとどうなってしまうのか・・・ ってのが心配で。
# 1のケースは問題外として、2はどうなのかな、と。
977 :
名無しさん@お腹いっぱい。:02/04/14 07:39
>>976 > # 関係ないけど、(略)
関係ないの?
(略)以下が
>>974を知りたい理由なんじゃないの?
>>974独立だったらケースバイケースでしょ。
978 :
デフォルトの名無しさん:02/04/14 08:20
C言語を勉強中の初心者です。
倉薫と高橋麻奈はどちらが美人でしょうか?
心優しい人の本で勉強したいのですが。
>>977 関係あるけど、別にGPLに限った話じゃなくて、
フリーソフトのソースを参考に業務用アプリに勝手に実装していいのかな、と。
コードをパクりさえしなければ、著作権上は問題ないと思われます。
アルゴリズムは著作権では保護されません。特許になってたらダメだけどね。
動作の仕組みを解析したあと、元のコードを忘れ去って新たに自分流でゼロから書き起こせば、だいじょーぶ。
特に、同じ動作を違うアルゴリズムで実装するのは効果的です。
でも実際、そこの所の問題は難しい。
特に解析した人とコードを書いた人が同じならね。 忘れましたって誰が信じてくれる?
だから、企業でやるなら、その担当を別にするクリーンルーム方式を取るべきだと思う
個人なら、解析したフォーマットをWebで公表するとかして、誰でも同じコードを
書ける状態を作った上で、その一人としてコードを書くとか、そういうクッションが
あった方がいいと思う。
>>980 次スレを立てて下さい。おながいします。
983 :
名無しさん@お腹いっぱい。:02/04/14 11:23
>>979 やっぱ関係あるんじゃん(w
qpopperは、BSD(license)のpop serverに、
Qualcommが手を入れてQualcomm copyright(license不明)で配ってるよ。
Linceseごとに違うからこれもケースバイケース。
>>983 まぁ、そうですけどね<関係
ただ、あれは私の個人的な事情で、知りたいのは一般的にどうかと。
ライセンスごとに違うのかもしれないけど、著作権関連はどうなるのかな、と。
1のケースだと当然元の作成者になるんだろうけど、
2のケースでもソースを見ているわけだから、ある程度は元ソースに影響されているはずで、
その辺どうなのかな、と。
ライセンスで問題あるなしより、「誰の」ソースになるのかな、と。
レス伸ばした責任として新スレ立ててきました。
最近この板でスレ立て多いな・・・
987 :
名無しさん@お腹いっぱい。:02/04/14 12:36
>>984 > 1のケースだと当然元の作成者になるんだろうけど、
全然当然じゃない。
988 :
名無しさん@お腹いっぱい。:02/04/14 12:38
>>984 > ライセンスで問題あるなしより、「誰の」ソースになるのかな、と。
ライセンスの問題は、著作権という財産権の問題です。
財産権には当然「誰の」という属性が付きまといます。
今だ!990ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
991ですよ、奥さん。
そろそろ1000だねぇ…
1000とったことないんですよー
カウントダウン開始
992…
ツマンネーカ
山形県村山市
うふふ
997 :
デフォルトの名無しさん:02/04/14 17:24
うわーん
 ̄V ̄ ̄ ̄ ̄
人 dukeゲットー
\/〇ヽ/  ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄
し-J=3 ⊂(`Д´⊂ )⊃===3
998 :
デフォルトの名無しさん:02/04/14 17:24
うわーん
 ̄V ̄ ̄ ̄ ̄
人 とみせかけて・・・・・
\/〇ヽ/  ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄
し-J=3 ⊂(`Д´⊂ )⊃===3
1
終わり
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。