Portál AbcLinuxu, 10. května 2025 09:13
char znaky[] = {'1', '2', '3'}; float cislo;aby cislo=123 ?
strtof
z stdlib.h
char* str = "1.23"; float f = strtof(str, NULL);
#include <stdio.h> #include <stdlib.h> int main () { char str[] = {'1', '2', '0', '.', '3','2'}; fprintf (stdout, "f: %0.2f\n", strtof(str, NULL)); return 0; }a output:
$ cc -g -Wall -o atest test.c
$ ./atest
f: 120.32
$
nebo je treba pouzit druhy parametr strtof, aby funkce vedela, kde retezec konci.To mi nesedí s manuálovou stránkou. Druhý parameter slúži len na výstup. Skrátka treba zariadiť, aby za tými znakmi, ktoré sa skonvertujú na float bolo niečo, čo tú konverziu zastaví prv než sa dostane mimo alokovanej pamäte. '\0' alebo písmeno, medzera, ...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.