C/C++の宿題を片付けます 104代目at TECH
C/C++の宿題を片付けます 104代目 - 暇つぶし2ch57:デフォルトの名無しさん
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;
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch