Hi kann ich strcat(buffer,byte) nehmen um in einem Array[100] ein wert anzuhängen. bsp: unsigned char Array[100]; Inhalt von array=0;1;2;3;7 usw. Speicher Pages. ich lese den letzten wert von array+1 um auf eine neue speicher Page zuzugreifen. nachdem will ich die neue Page an das array anhängen. unsigned char byte; kann ich das mit strcat machen???
str***() Funktionen funktionieren, wie der Name schon vermuten läßt, nur auf Strings. D.h. sie benötigen immer die abschließende 0 und erlauben keine 0 mittendrin. Peter
Ausserdem ist strcat etwas überkandidelt um ein einzelnes Byte anzuhängen. Du kennst doch den Array Index des letzten, in Array benutzen Bytes. Warum weist du nicht einfach dorthin zu und erhöhst den Belegtzähler? unsigned char PageCount; unsigned char Pages[100]; .... /* Pages enthält zb. 0, 2, 5, 6 PageCount ist daher 4 */ if( PageCount < 100 ) Pages[PageCount++] = 8; /* neue Page hinzufügen */ else /* Fehler: Page Tabelle ist voll */ ;
Ja mit den Pages das geht so aber wie kann ich nur einzelne texte ranhängen ich habe ja 528byte pro page. ich lese immer nur 38 byte ein und muß diese an den Buffer hängen der dann wenn 528 Byte drinn sind an die page die werte übergibt. char texte[39]; char buffer[529]; if(geschrieben<528) { //texte an buffer anhängen mit ?????strcat???? } wie kann ich den text an den buffer anhängen???? mit strcat oder???? wo muß die null stehen????
> wie kann ich den text an den buffer anhängen???? > mit strcat oder???? Ja. Ist eine Möglichkeit > wo muß die null stehen???? Die '\0' steht immer nach dem letzten gültigen Zeichen im Array. Wenn also das Buffer Array am Anfang kein Zeichen enthält, dann ust Buffer[0] == '0' Willst do dort den Text "Ma" anhängen, dann machst du strcat( Buffer, "Ma" ); // Oder für "Ma" ein anderes Array, // das den String "Ma" enthält Buffer sieht dann so aus +---+---+---+---+---+---+---+- ... -+---+---+ | M | a |\0 | | | | | | | | +---+---+---+---+---+---+---+- ... -+---+---+ so jetzt hängen wir noch "rt" dran strcat( Buffer, "rt" ); +---+---+---+---+---+---+---+- ... -+---+---+ | M | a | r | t |\0 | | | | | | +---+---+---+---+---+---+---+- ... -+---+---+ und zum Schluss strcat( Buffer, "in" ); +---+---+---+---+---+---+---+- ... -+---+---+ | M | a | r | t | i | n |\0 | | | | +---+---+---+---+---+---+---+- ... -+---+---+ Das einzige worauf du aufpassen musst ist, dass das Endergebnis nie länger wird als der Buffer fassen kann (die abschliessende '\0' nicht vergessen). Wenn du selbst nicht dafür sorge tragen kannst, willst oder musst, dann lieber strncat anstatt strcat verwenden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.