要素数カウンター
*str[]
の要素数をカウントするためのコードを書いてみたけれども、なんか番兵に相当するEND
ってかっこわるい気がする。これをNULL
に書き換えようと思うのだけれども、素直に書き換えただけではだめらしい。
/* * 2006年2月4日 * *str[]の要素数をカウントする */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define END ("end") char *month[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", END, }; int count_month(void) { int i = 0; while (strcmp(month[i], END) != 0) { i++; } return i; } int main(int argc, char *argv[]) { printf("count_month = %d\n", count_month()); return 0; }