toshi.txtを対応する表として書き換えてtoshi.csvにする方法。

|TOKYO|155|1|     TOKYO,155,1,
|NAGOYA|108|3|  →   NAGOYA,108,3,

このように書き換えを行うプログラミングを教えてください。
"|"を","に書き換えればいいのは分かるのですがうまくいきません。
プログラミングは全くの初心者なのでよろしくお願いします。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    char line[100];   // ファイルから読み込んだ行を格納用
    FILE *in_file, *out_file; // ファイルポインタ格納用
    int i;

    printf("Change a text file toshi.txt to csv file. \n");

    in_file = fopen("toshi.txt", "r"); 
    if (in_file == NULL) {
        printf("fopen_in error");
        return 0;
    }
    out_file = fopen("toshi.csv", "w"); 
    if (out_file == NULL) {
        printf("fopen_out error");
        return 0;
    }

    while (fgets(line, 100, in_file) != NULL){
        i = 1;
        while (line[i] != '\n'){
            switch (line[i]){ 
            case'|':
                line[i]=',';
                break;
                if (line[i] != '|'){ line[i] = line[i]; }
            }

            i++;
        }
        fputc(line[i], out_file);
    }

    fclose(in_file);
    fclose(out_file);
    return 0;
}