Konvertierung: string in integer

hallo alle zusammen!

es handelt sich um den bcb5.

ich lese (möchte es jedenfalls :wink:) ansistrings von der seriellen schnittstelle und will diese nun in integerwerte umwandeln.

wie funktioniert das?

kleiner tipp:
mit strtoint klappt es nur bei strings 10 bekomme ich nur unsinn?!

danke schon mal
luggi

Hallo Luggi,

versuch mal dies

int a;
a = atoi( DeinString );

Du solltest aber dafür sorgen das die Funktion atoi() auch wirklich ein Integer bekommt.

gruß

Jörg

versuch mal dies

int a;
a = atoi( DeinString );

hallo!

nein funktioniert leider auch nicht :frowning:(.

so hab ich es probiert:

AnsiString Str;
int a;

Str=‚12‘;
a=atoi(Str);
Edit2->Text=IntToStr(a);

der compiler bringt mir folgende fehler:

[C++ Fehler] Unit1.cpp(134): E2034 Konvertierung von ‚int‘ nach ‚const char *‘ nicht möglich
[C++ Fehler] Unit1.cpp(134): E2342 Keine Übereinstimmung des Typs beim Parameter ‚__s‘ (‚const char *‘ erwartet, ‚int‘ erhalten)

bitte weiterhelfen,
luggi

Hi Luggi

so hab ich es probiert:

AnsiString Str;
int a;

Str='12';
a=atoi(Str);
Edit2-\>Text=IntToStr(a);

Dein Fehler liegt bei dem Str=‚12‘. In C werden einfache Hochkomma für ein einzelnes Zeichen verwendet. ‚12‘ ist eigentlich falsch. Wenn der Compiler es doch interpretiert, dann nur als ‚1‘. Deswegen funktioniert es mit Zahlen immer mit doppelten Hochkomma (also ") angegeben

In ANSI-C (nicht C++ !!!) kannst du Zeichenketten allerdings nicht direkt zuweisen. Du müßtest also z.B.

strcpy(Str, "12");

verwenden dafür.

Gruss Jens

Hallo,

generell sollte der Fragesteller mal festlegen, ob er gerne C oder C++ programieren möchte. In C klappt es jedenfalls so:

#include 
#include 

int i;
char \* str="123";
i = atoi(str);
printf("%s ist %d\n",str,i);

Gruß

Fritze