演習1-24 K&R プログラミング言語C
2009年12月12日
演習1-24
開始 [
が見つかればカウンタを増加させ、閉じ ]
が見つかればカウンタを減少させている。
最終的にカウンタが 0
であればエラーではないという、手抜き版。
#include <stdio.h> #define TRUE 1 #define FALSE 0 int main(int argc, char *argv[]) { int c, d, cb_count, is_comment, is_squote, is_dquote; cb_count = 0; is_comment = is_squote = is_dquote = FALSE; c = getchar(); while (c != EOF) { d = getchar(); if (!is_dquote && !is_squote && !is_comment && c == '/' && d == '*') { is_comment = TRUE; } else if (!is_dquote && !is_squote && is_comment && c == '*' && d == '/') { d = getchar(); is_comment = FALSE; } else if (!is_comment && !is_squote && !is_dquote && c == '"') { is_dquote = TRUE; } else if (!is_comment && !is_squote && is_dquote && c == '"') { is_dquote = FALSE; } else if (!is_comment && !is_dquote && !is_squote && c == '\'') { is_squote = TRUE; } else if (!is_comment && !is_dquote && is_squote && c == '\'') { is_squote = FALSE; } if (!is_comment && !is_squote && !is_dquote && c == '{') { cb_count++; } else if (!is_comment && !is_squote && !is_dquote && c == '}') { cb_count--; } c = d; } if (cb_count != 0) { fprintf(stderr, "ERROR COUNT %d\n", cb_count); } return 0; }
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726