Portál AbcLinuxu, 19. prosince 2025 00:30
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.