zeichen im String umwandeln

Gast #25191
Lesenswert?
• ▲
▼
...und schon wieder ich

hab ne Zeichenkette z.B. String "500040C90...."
Bei den Zeichen 0C handelt es sich um eine Hex Zahl (d12).
Jetzt möchte ich die Hex 0C nach "kette" kopieren.
Beispiel:
int k;i;
char kette[3];
i=5; //sollte die 0 von 0C sein
kette[k]=string[i];
k++;i++;
kette[k]=string[i];

Jetzt hoffe ich,daß in dem String "Kette" 0C steht.
Nun steht ja i auf C vom string und ich möchte i jetzt um 12 stellen 
erhöhen.
Wie stell ich es am besten an? Er erhöht mir immer i um 67.
Ist ja ein "C" aber soll ja hex C sein.
Gruß Helge
Gast #25193
Lesenswert?
• ▲
▼
//-----------------------------------------------------------

char gethex(char *s)
{
  char h,l;
  h = s[0] - '0';
  l = s[1] - '0';
  if(h>9)
    h -= 7;
  if(l>9)
    l -= 7;
  return h*16+l;
}



i = gethex(kette[k-1]);


kommst klar?
Reiner
Gast #25196
Lesenswert?
• ▲
▼
Hallo Reiner
Komm irgendwie nicht klar :-))))
das hier hab ich reingebastelt:

int k;
j=0;
s[j]=rx_buffer[i];j++;i++;s[j]=rx_buffer[i]; //kopiert 07 nach s (als 
zeichen ---also 55---

jetzt kommt deins:  (hab ich bestimmt falsch gemacht)

   char gethex(char *s)
    {
    char h,l;
    h = s[0] - '0';
    l = s[1] - '0';
    if(h>9)
    h -= 7;
      if(l>9)
       l -= 7;
        return h*16+l;
    }

k = gethex(&s[j-1]);

jetzt sollte in k eine 7 stehen

Vielleicht kannst du mir ja mal auf die Sprünge helfen.
Gruß Helge
Gast #25197
Lesenswert?
• ▲
▼
stelle das Programm von mir über main. Und verwende in Deinem Teil den 
Aufruf k = gethex(&s[j-1]);

Dann sollte es gehen.
Gethex ist ein Unterprogramm und muß vor dem main deklariert sein.
Reiner




char gethex(char *s){
  char h,l;
  h = s[0] - '0';
  l = s[1] - '0';
  if(h>9)
    h -= 7;
  if(l>9)
    l -= 7;
  return h*16+l;
}


void main(void){   // hier kommt Dein main
  int k;
  j=0;

  s[j++]=rx_buffer[i++];
  s[j]=rx_buffer[i];       //kopiert 07

  k = gethex(&s[j-1]);

}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.