C/C++の宿題を片付けます 93代目at TECH
C/C++の宿題を片付けます 93代目 - 暇つぶし2ch126:デフォルトの名無しさん
07/07/16 23:18:52
>>120
#include <stdio.h>
int main(int argc, char **argv)
{
    char *queue;
    int c, qhead = 0, qtail = 0, qsize;
    if (argc < 3)
        return fprintf(stderr, "usage: %s from to\n", argv[0]), 1;
    qsize = strlen(argv[1]);
    queue = malloc(qsize);
    while ((c = getchar()) != EOF) {
        queue[qtail] = c;
        qtail = (qtail + 1) % qsize;
        if (qhead != qtail) continue;
        if (memcmp(&queue[qhead], argv[1], qsize - qhead) == 0
        && memcmp(queue, argv[1] + qsize - qhead, qtail) == 0) {
            fputs(argv[2], stdout);
            qhead = qtail = 0;
        } else {
            putchar(queue[qhead]);
            qhead = (qhead + 1) % qsize;
        }
    }
    while (qhead != qtail) {
        putchar(queue[qhead]);
        qhead = (qhead + 1) % qsize;
    }
    free(queue);
    return 0;
}


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