« ITアーキテクト | メイン | Microsoft Tech・Ed 2005 Yokohama »

June 10, 2005

C の演習の課題

c.gif
C 言語入門者のための演習の課題を作ってみた。

【文字列の演習】

#include <assert.h>

// ここに適切な関数を追加して、「実行できるけど、実行しても何にも起きないように」してね。
//  ・今あるコードを消すのはなし
//  ・#include を追加するのも禁止

void TestIsSameString()
{
   assert( IsSameString("abcde"   , "abcde"   ));
   assert(!IsSameString("abcde"   , "abcdefgh"));
   assert(!IsSameString("abcdefgh", "abcde"   ));
   assert(!IsSameString("abcde"   , ""        ));
   assert( IsSameString(""        , ""        ));
}

void TestCopyString()
{
   char textBuffer[0x1000];
   CopyString(textBuffer, "QWERTY");
   assert(IsSameString(textBuffer, "QWERTY"));
   CopyString(textBuffer, "");
   assert(IsSameString(textBuffer, ""));
}

int main()
{
   TestIsSameString();
   TestCopyString();
   return 0;
}

投稿者 Fujiwo : June 10, 2005 03:20 PM

トラックバック

このエントリーのトラックバックURL:
http://blog0.shos.info/cgi-bin/mt-tb.cgi/209

このリストは、次のエントリーを参照しています: C の演習の課題:

» spotify premium hack 2014 from spotify premium hack 2014
翔ソフトウェア (Sho's) Fujiwo の日記: C の演習の課題 [続きを読む]

トラックバック時刻: March 28, 2014 01:37 PM

» uberstrike generator no survey from uberstrike generator no survey
翔ソフトウェア (Sho's) Fujiwo の日記: C の演習の課題 [続きを読む]

トラックバック時刻: May 25, 2014 04:31 AM

コメント

すっ、すごい。確信犯だ。

投稿者 ytm : June 11, 2005 01:57 AM

ytm さん、こんにちは。

確信犯です。

テスト ファーストという言葉は一切使いません。
「関数作るときは、まずどんな関数なのかを呼び出し側のコードで明示しようね」のように説明してます。

投稿者 Fujiwo [TypeKey Profile Page] : June 11, 2005 03:58 PM

とても良い課題ですね。

知らないうちにテストファーストを実践しているし、assertについて理解できるし、Cのポインタと文字列の扱いも理解できるし。

投稿者 afukui : June 12, 2005 09:06 PM

afukui さん、こんにちは。

ありがとうございます。
今 C 言語のポインタを教える方法を、試行錯誤しているところなんです。
自分で使うのに比べて他人に使い方を教えるのは、3倍の理解が必要です (当社比)。

投稿者 Fujiwo [TypeKey Profile Page] : June 13, 2005 05:04 PM