2013年11月8日金曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の10章(Cプリプロセッサ)、10.2(条件付きコンパイル)、10.3(インクルードファイル)、10.4(パラメータをとるマクロ)、10.5(高度な機能)、10.8(プログラミング実習)実習10-2を解いてみる。

その他参考書籍

実習 10-2.

コード

sample.c

#include <stdio.h>
#include <string.h>
#define is_digit(c) ((c) >= '0' && (c) <= '9')

int main()
{
    char line[100];
    char c;
    int i;
    do {
        fgets(line, sizeof(line), stdin);
        line[strlen(line) - 1] = '\0';
        if (line[0] == '\0'){
            break;
        }
        for (i = 0; line[i] != '\0' && is_digit(line[i]); i++){
            ;
        }
        if (line[i] == '\0'){
            printf("10進数\n");
        } else {
            printf("10進数ではない。\n");
        }
    } while (1);
    return (0);
}

makefile

CC=cc
CFLAGS=-g

sample: sample.c
 $(CC) $(CFLAGS) -o sample sample.c

clean:
 rm -f sample

入出力結果(Terminal)

$ ./sample
1
10進数
2
10進数
3
10進数
4
10進数
5
10進数
6
10進数
7
10進数
8
10進数
9
10進数
10
10進数
12345
10進数
abcde
10進数ではない。
a
10進数ではない。
b
10進数ではない。
c
10進数ではない。
d
10進数ではない。
e
10進数ではない。

$

0 コメント:

コメントを投稿