Portál AbcLinuxu, 13. května 2025 21:38
Nějak vůbec nevim, jak na to v céčku
čekal jsem, že to bude něco jako v PHP(is_int), ale vono nee
poradí mi někdo prosím?
Řešení dotazu:
Co třeba isdigit?
tam se jedna pouze o číslici, ne?
Ano, ale můžeš zkontrolovat všechny znaky v řetězci.
Funkce is_int
v PHP vraci typ promenne, tzn. ze is_int(1) == true
, ale is_int("1") == false
. Protoze c/c++ je staticky typovany jazyk, tato funkce v nem nema smysl, typ promenne znate a deklarujete pri prekladu.
Za predpokladu, ze jste mel na mysli ekvivalent fce is_numeric
(tzn. jak zjistit, ze retezec obsahuje textovou reprezentaci cisla), muzete pouzit treba strtol
.
jak pomoci te funkce zjistit, jestli uzivatel zadal cislo nebo ne?
diky, nejak jsem to nepobral
#include <stdlib.h> /* VAROVANI: psano z hlavy, netestoval jsem! */ int is_numeric(const char* str) { char* end; strtol(str, &end, 10); return str != end; }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.