Hallo zusammen, ich bin Anfänger und möchte wissen, ob man strncat mit uint_16t benutzen kann? Überall steht nur: char *strncat(char *s1, const char *s2, size_t) Danke
Hallo Oliver, was meinst Du mit "uint_16t" ? "size_t" ist eine Typdeklaration und hier '>=' 0. Die Funktion |strncat(s1,s2,3)| fügt zwei Strings aneinander; Bsp.: s1 = "12345"; s2 = "67890"; s3 = strncat(s1, s2, 3); s3 ist dann "12345678"; Am Ende jeden Strings steht noch ein '\0' das wird richtig kopiert, bzw. ans Ende gesetzt. .
Falls du den 3. Parameter meinst: ja, da kann man auch uint16_t übergeben. Sonst: nein.
Ist ein uint_16t denn ein String? Ünerlege Dir mal warum die Variablen von Funktionen und Prozeduren einen Typ haben.
Womit wir bei einer ganz anderen Frage wären: Was willst du eigentlich machen, von dem du denkst, dass strncat eine Lösung sein könnte? Ich hab da eine Vermutung. Und um der Ausdruck zu geben, möchte ich relativ unkommentiert einfach folgende Zeilen zur Meditation freigeben. Es waren 2 Zahlen, 5 und 8 die wollten sich aneinanderhängen. Da kam der Copperfield, der magische und rechnete: 5 * 10 + 8 macht 58 (ein 2ter Paul wird nie aus mir werden)
ich habe folgendes Problem char S1[4]; char S2[25]; S1[0]=0XFF; S1[1]=0XAA; S1[2]=0XBB; S1[3]=0XCC; for ( uint8_t i = 0 ; i < 5 ; i++ ) { { strncat(S2, S1[i], 24); /* the next word attach the rear */ strncat_P(S2, PSTR(" "), 24); /* insert space*/ } } ich möchte , dass S2 so aussieht: FF AA BB CC danke
Hast Du Dir schon mal die Prozedur memcpy() angeschaut? Oder eine einfache Zuweisung? Ist dir das Konzept eines 'Zeigers' vertraut? Hast Du schon mal in ein C Buch geschaut?
Oliver schrieb: > ich habe folgendes Problem > > char S1[4]; > char S2[25]; > S1[0]=0XFF; > S1[1]=0XAA; > S1[2]=0XBB; > S1[3]=0XCC; > > > for ( uint8_t i = 0 ; i < 5 ; i++ ) > { { > strncat(S2, S1[i], 24); /* the next word attach the rear */ > strncat_P(S2, PSTR(" "), 24); /* insert space*/ > } > } > ich möchte , dass S2 so aussieht: FF AA BB CC In Textform oder sollen ersten 4 Bytes von S2 so aussehen? du musst erst mal damit anfangen zwischen Zahlen und der Textrepräsentierung von Zahlen zu unterscheiden! 12 ist nicht dasselbe wie "12" ersteres ist eine Zahl mit der man rechnen kann. zweiteres ist ein String, so wie auch "Huber Franz" einfach nur ein String ist: Eine Abgfolge von Zeichen, die mit einem '\0' Zeichen abgeschlossen wird. S1[0], mit dem Inhalt 0xFF, ist auch nur eine Zahl und kein String. Daher kannst du strncat so erst mal nicht benutzen! Du musst erst aus dieser Zahl einen String mit dem Inhalt "FF" machen. Dazu ist zb utoa dein Freund. Und erst dann, wenn du die 4 Zahlen in ihre jeweilige textuelle Form überführt hast, du also 4 Strings hast, kannst du sie mittels den string-Funktionen zusammensetzen. (Man kann natürlich auch alles in einem Aufwasch erschlagen, indem man sprintf die Arbeit machen lässt) Du brauchst ein C-Buch.
Karl heinz Buchegger schrieb: > Du brauchst ein C-Buch. Es nützt aber nix, wenn es nur im Schrank steht :-( Wo nimmst Du nur (fast) immer diese Geduld her?
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.