Benutzung von strtoul

Gast #986904
Lesenswert?

Hi,
kann jemanden mir zeigen wie ich ein Char in uint_32 konvertieren kann
#include <stdlib.h>

char zahl1[4]="104";
uint16_t zahl2;
zahl2 = (uint16_t) strtoul(zahl1, (void *) 0, 16);
ich bekomme zahl2 = 104

jetzt ich definiere
uint32_t zahl2;
zahl2 = (uint32_t) strtoul(zahl1, (void *) 0, 32);
ich bekomme zahl2 = 404
Gast #986961
Lesenswert?

Tach,

1. Du möchtest ab sofort immer ein funktionierendes Minimal-Beispiel in 
einer Code-Umgebung verwenden. (Ich bin faul...) ;-)
2. Du möchtest nicht char konvertieren sondern ein char-array, also 
einen String!
3. Du möchtest dir die strtoul-Funktion nochmal näher anschauen. Schaue 
hier für [1]. ;-)
4. Der Teil mit uint16_t wird immer eine Warnung ausgeben, also entweder 
doch uint32_t verwenden, oder du musst sicherstellen, dass zahl3 nie zu 
groß für einen uint16_t ist/wird.
1
  char zahl1[4]="104";
2
  //long unsigned zahl2;
3
  uint16_t  zahl2;
4
  zahl2 = (uint16_t) strtoul(zahl1, (void *) 0, 10);
5
  //ich bekomme zahl2 = 104
6
  printf("zahl1 -> %s \t||\t zahl2 -> %ld \n",zahl1,zahl2);
7

8
  //jetzt ich definiere
9
  uint32_t zahl3;
10
  zahl3 = (uint32_t) strtoul(zahl1, (void *) 0, 10);
11
  //ich bekomme zahl2 = 404
12
  printf("zahl1 -> %s \t||\t zahl3 -> %ld \n",zahl1,zahl3);

[1] http://www.goblack.de/desy/sc12chip/c/bibliothek/strtol.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren