Wie kann ich ein Char mit einem exkusiven oder zusammen ziehen?
-
Hi!
Wie kann ich die einzelen Chars zwischen $ und * zusammenziehen?$GPRMC,145320.999,A,5107.1103,N,00724.0344,E,0.06,41.78,031105,,*33
versteht mich nicht falsch möchte nur wissen wie das mit dem exklosiven oder geht also ^
ergebniss = char[i] ^ char[i+1]oder wie?
-
Im Prinzip ist das so richtig, wenn du alle Zeichen XOR-verknüpfen willst, empfehle ich dir eine Schleife:
char* text="...";//Eingabetext int start_pos=strchr(text,'$')+1);//Startposition - hinter dem $ int end_pso=strchr(text,'*');//Endposition - vor dem * char res=0; for(int pos=start_pos;pos<end_pos;++pos) res^=text[pos];
-
Danke für die schnelle antwort !
ich hab noch ein problem wie erkenne ich ein ende eines Char ? ich lade :char[] = iin steht eine anzahl von zeichen aber wie viele habe ich geladen?

-
ein char hat kein "Ende", das ist genau ein Byte groß. Bei einem char[] (Array von char's) kannst du die Größe mit sizeof ermitteln.
Und die meisten stringverarbeitenden Funktionen setzen ein '\0' als letztes Zeichen hinter einen String, um das Ende zu kennzeichnen - solange du dich daran hältst, kannst du die Länge der gültigen Daten in einem char[] oder char* mit strlen abfragen.
(oder du steigst um auf eine String-Klasse wie std::string (MFC hat einen eigenen CString, Borland dürfte etwas ähnliches verwenden))
-
also wird er dann so übertragen ?
text = abcdefg\0

-
Ja, zumindest solange du keine Funktionen verwendest, die sich nicht an diesen Standard halten.