Forum: Mikrocontroller und Digitale Elektronik Feldinhalte eines Arrays verschieben/ersetzen


von Körni (Gast)


Lesenswert?

Hallo,
ich hab eine Frage zum verschieben und versetzen von Zeichen in einem 
Array.
Wenn mein Feld eine bestimmte Größe hat, so soll es verändert werden.
Ich hab nicht viel Erfahrunfg in C, aber mit Hilfe von strncsp() ließe 
sich ja ein um das andere in ein Array schreiben und dann könnte man den 
jeweiligen Punkt oder Null dazwischen einfügen. Gruß

for( i = 0; i < strlen(daten); i++)
{

    parameters[j] = daten[i];
    j++;

    if(strlen(daten) == 1 && i == 0)
    {
      parameter[j] = '.';
      j++;
      parameter[j] = '0';
      j++;
    }

    if( strlen(daten) == 2 && i == 0)
    {
      parameter[j] = '.';
      j++;
    }

    if(strlen(daten) == 3 && i == 1)
    {
      parameters[j] = '.';
      j++;
    }
}

von Karl H. (kbuchegg)


Lesenswert?

Körni schrieb:

> Wenn mein Feld eine bestimmte Größe hat, so soll es verändert werden.
> Ich hab nicht viel Erfahrunfg in C, aber mit Hilfe von strncsp() ließe
> sich ja ein um das andere in ein Array schreiben und dann könnte man den
> jeweiligen Punkt oder Null dazwischen einfügen. Gruß

Stell dich mal ganz dumm.
Nimm an, du bist nicht der mit der Frage. Nimm weiters an, du hast keine 
Ahnung davon was der Fragesteller macht oder welche Aufgabenstellung er 
zu lösen versucht.

Und dann lies deinen Text noch einmal.
Kennst du dich aus, was eigentlich gefragt ist, bzw. worum es in der 
Frage geht?

Wenn ja, dann bist du ein Hellseher.

von Körni (Gast)


Lesenswert?

Ups, Ok das ist wirklich sch.... erklärt.

Ich möchte gerne empfange Daten die in char daten[6] abgelegt werden 
verändern.
Alo wenn nur 1 Zeichen bspw. '8' vorliegt, will ich daraus 8.0 machen,
wenn ich '88' habe 8.8 und bei '888' will ich gerne 88.8 daraus machen.

Diese Zeichen liegen in daten[6]. Nun möchte ich gerne diese Zeichen wie 
vorhin beschrieben modifizieren. Ich habe das mit der for-schleife 
probiert, indem ich die Zeichen aus "daten" in "parameter" schreibe und 
entsprechend ihrer Länge dann verändere. Wie gesagt habe ich in C nicht 
allzu viel Erfahrung und wollte fragen, ob es dazu eine bessere Lösung 
gibt, wie die von mir oben beschriebene.
VG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Körni schrieb:
> Alo wenn nur 1 Zeichen bspw. '8' vorliegt, will ich daraus 8.0 machen,
> wenn ich '88' habe 8.8 und bei '888' will ich gerne 88.8 daraus machen.

Das ist kaputt.

Sinnvoller, weil einheitlicher, wäre '8' -> 0.8

von pogo (Gast)


Lesenswert?

Machs doch einfach mit

strncat( parameter, daten, 1);
strcat(parameter, ".");
strncat(parameter, daten+1,1);

ferti! ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.