10進数の場合は真を返す
引数が10進数の場合は真を返すマクロを作る問題なんだけど、わからないから関数で…。
#include <stdio.h> int is_digit(char str[]) { int i, n; char cpy[] = ""; strcpy(cpy, str); cpy[1] = '\0'; if(strcmp(str, "0") != 0 && strcmp(cpy, "0") == 0) return 0; for(i=0; i<strlen(str); i++){ n = str[i]; if(n>=48 && n<=57) continue; else return 0; } return 1; } int main() { char str[100]; fgets(str, sizeof(str), stdin); str[strlen(str)-1] = '\0'; if(is_digit(str)) printf("%s is digit.\n", str); else printf("%s is not digit.\n", str); return 0; }
メモ
- ポインタがでる前の章の問題