課題42


  1. 次の関数 stringcopy は、 2つ目の引数 (b) に指定された文字列を、 1つ目の引数 (a) に指定された配列の領域にコピーします (strcpy と同じ)。

    /*
    ** プログラム名: kadai42
    ** 動作: 文字列のコピー
    ** 作者: 自分の名前、学籍番号
    ** 日付: 今日の日付
    */
    void stringcopy(char a[], char b[])
    {
        int i = 0;
        int j = 0;
    
        while (a[i++] = b[j++]);
    }
    

  2. 文字列の最後は '\0'、すなわち整数の 0 に等しいので、 a[i++] = b[i++] という式の値は文字列の最後で 0 になり、 while の条件が偽になってこの繰り返しは終了します。 なお、この while によって繰り返される文は空文(; のみ)になっています。

  3. この式 a[i++] = b[i++] を、 i, j を使わずにポインタを使うように書き換えてください。

  4. ソースプログラムのファイル名は kadai42.c とし、 それをメールで tokoiまで送ってください。 Subject: は kadai42 としてください。