C++

[C, C ++] La diferencia entre la función isnumber () y la función isdigit () en ctype.hy cctype

Difference Between Isnumber Function

Página de manual de Mac OS X La diferencia entre las funciones isnumber () e isdigit () en la función ctype se explica de la siguiente manera:

La función isnumber () se comporta de manera similar a isdigit (), pero puede reconocer caracteres adicionales, dependiendo de la configuración regional actual.



Es decir: la función isnumber () es similar a isdigit (), pero isnumber () puede reconocer otros caracteres dependiendo de la ubicación actual ~

La función isnumber () se puede ver en ctype.h (o cctype) de XCode o CLion (versión Mac). Sin embargo, no se encuentra la documentación oficial de C ++. Esto se debe a que isnumber () no es la función de biblioteca oficial de C / C ++. Es la función especial de Apple para Mac OS C ++ que cree que es fácil de usar (estas funciones tienen mucho, no solo un número). Puedo ver Página de función Ctype en Mac OS X Man Pages Encuentre la función isnumber () ~ El manual también menciona que isnumber () no está en el estándar C90:

Estas funciones, excepto digittoint (), isascii (), ishexnumber (), isideogram (), isnumber (), isphonogram (), isrune (), isspecial () y toascii (), conforme a ISO / IEC 9899: 1990 (ISO C90 ”).

Se puede ver que si usa la función isnumber () en el entorno Linux, g ++ no se puede compilar:

|_+_|

No se puede compilar en Clang:

|_+_|

Por tanto, isnumber () no es una función de biblioteca estándar de C / C ++. Si es un algoritmo de pincel, no lo use ~