Portál AbcLinuxu, 10. května 2025 09:13

Dotaz: Prevedeni pole znaku na float v C

1.8.2011 12:43 f
Prevedeni pole znaku na float v C
Přečteno: 520×
Odpovědět | Admin
Da se prevest pole znaku na float cislo v C?
char znaky[] = {'1', '2', '3'};  
float cislo;
aby cislo=123 ?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.8.2011 12:55 mato
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
fcia strtof z stdlib.h
        char* str = "1.23";
        float f = strtof(str, NULL);
dmnc_net avatar 1.8.2011 15:40 dmnc_net | skóre: 12 | blog: dmnc
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
no jo, ale f (tazatel) chce mit na vstupu pole, ne string... nevim jestli je v C neco jako implode() (v PHP nebo kde to je), ale da se to jednim cyklem prepsat do toho stringu...
1.8.2011 15:55 mato
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
ale pole znakov je string. bude to fungovat i takto:
#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
$
1.8.2011 16:01 kuka
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
Bud tam jeste musi byt na konci null character nebo je treba pouzit druhy parametr strtof, aby funkce vedela, kde retezec konci.
1.8.2011 17:12 mato
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
yop, to mas pravdu.
1.8.2011 21:58 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
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, ...
1.8.2011 23:25 kuka
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
Pravda, s necim jsem si to asi spletl. Pritom bych klidne tvrdil, ze jsem to v minulosti uz pouzil:-) Ale si to tenkrat fungovalo jen nahodou. Holt pri programovani v cecku musi byt clovek porad ve strehu...
1.8.2011 23:46 mato
Rozbalit Rozbalit vše Re: Prevedeni pole znaku na float v C
a ja musim poriadne citat po druhych ;) .. som precital prvu cast tvojho prispevku a odpovedal som .. v tej prvej casti si mal pravdu, null terminator ten string musi mat ..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.