C/C++の宿題を片付け ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
54:デフォルトの名無しさん 08/02/07 23:32:08 [1] 授業単元:プログラミング [2] 問題文 4問です。 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6017.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual C++ 2005 [3.3] 言語: C [4] 期限: 2月10日 午前0時まで [5] その他の制限:特になし 55:デフォルトの名無しさん 08/02/08 01:11:59 >>53 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6018.c 56:デフォルトの名無しさん 08/02/08 01:17:17 >>55 39行目くらいの fprintf(outfp, "%s", pstart); を fputs(pstart, outfp); に変えてください (別にどっちでもいいんだけど、統一させないと気持ち悪いから どうも、fprintfを使うのが癖になってるな) 57:デフォルトの名無しさん 08/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; }
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4992日前に更新/299 KB
担当:undef