- 1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/
- 55 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:11:59 ]
- >>53
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6018.c
- 56 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:17:17 ]
- >>55
39行目くらいの fprintf(outfp, "%s", pstart); を fputs(pstart, outfp); に変えてください (別にどっちでもいいんだけど、統一させないと気持ち悪いから どうも、fprintfを使うのが癖になってるな)
- 57 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:24:30 ]
- >>53 便乗でゴミソース。 一度置換した文字列をバッファに確保すべきだろうか?
#include <stdio.h> #include <string.h> #define BSIZE 1024 int ismatch(char *str1, char *str2){ while(*str1 == *str2){ if(*str1 == '\0') return 0; if(*str2 == '\0') break; str1++, str2++; } return *str2 == '\0'; } int main(int argc, char *argv[]){ FILE *in, *out; int cnt = 0, len; char buf[BSIZE], *p; if(argc < 4) return fprintf(stderr, "Usage: <FILENAME> <STRING> <STRING> [FILENAME]\n"), 1; if((in = fopen(argv[1], "r")) == NULL) return perror(argv[1]), 1; if(argc < 5) out = stdout; else out = fopen(argv[4], "w"); len = strlen(argv[2]); while(fgets(buf, sizeof(buf), in)) for(p = buf; *p != '\0'; p++) if(ismatch(p, argv[2])) fputs(argv[3], out), p += len - 1, cnt++; else fputc(*p, out); fclose(in); if(argc >= 5) fclose(out); printf("\"%s\"-> \"%s\",(%d)\n", argv[2], argv[3], cnt); return 0; }
|

|