- Labornetzteil AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Variablentypen-Verknüpfung

  1. #1

    Variablentypen-Verknüpfung

    Anzeige

    E-Bike
    Nochmals Grüße an alle!
    Weiß, dass ich Einsteiger bin - Daher offenbaren sich mir immer neue Probleme:
    Ist es möglich an einen String eine int bzw double Variable zu hängen?
    Bsp.: String("Part"), Int("01") -> "Part01"
    Die int-Variable ist der Counter einer for-Schleife.

    Meine Idee:

    "char name[250];
    int i;

    for(i=0; i<5; i++)
    {
    name[250]=strcat(name,i);
    }"


    Es entstehen keine Fehler beim compilieren-Programm stürzt nur ab.
    Danke!!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Pfalz
    Beiträge
    154
    Hi Sveni

    strcat(char *dest, const char *src);
    Hängt an einen String einen anderen dran.
    Da strcat als 2. Parameter auch einen Nullterminierten String erwartet kannst Du nicht einfach einen integer übergeben.
    Dazu must Du vorher den Integer in einen String umwandeln
    z.B. mit itoa(int value, char *string, int radix);

    Dafür solltest Du einen 2. String mit
    Code:
       char Intstring[50];
    definieren und den dann mit
    Code:
    itoa(i,Intstring,10);
    aufrufen (Die 10 bedeutet 10er System)

    Was in Deinem Programm nicht nötig ist, ist die Zuweisung des strings da in name bereicht das Ergebnis reingeschrieben wird.

    char name[250];
    char Intstring[50];
    int i;

    for(i=0; i<5; i++)
    {
    strcat(name, itoa(i,Intstring,10) );
    }

    Damit müßtest Du Erfolg haben.

    In Standard C ist das alles noch etwas mühsam.
    Schau dir mal den Befahl fprintf an. Vielleicht erfüllt der deine Anforderungen etwas einfacher.

    Babbage

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    sprintf() ist Dein Freund.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.05.2006
    Ort
    Pfalz
    Beiträge
    154
    thx ogni42

    ja, logisch sprintf, fprintf ist für streams.
    Man wird halt auch nicht jünger.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Ja, wem sagst Du das? Muss mir schon die Seite merken, zu der ich morgen aus dem Bett aufstehe

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    sprintf() sollte man für den AVR nicht nehmen, ist sehr speichertintensive und langsam.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Was nimmt man stattdessen - außer selber schreiben, was bei der Funktionalität von sprintf, am Ende wahrscheinlich ebenfalls "speicherintensiv und langsam" ist?

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Das zusätzliche Problem bei den ganzen Befehlen mit einem "Format-Specifier" (printf, fprintf, sprintf, scanf, etc) ist eben, daß dieser Format String ja auch erstmal interpretiert werden muß. Und das braucht (zusätzlich).
    Wenn also beim kompilieren schon klar ist, was wie konvertiert werden muß, kann man diese Arbeit einsparen.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test