Also versuche ich eine char
an eine char*
anhängen.C an char anhängen *
Zum Beispiel habe ich char *word = " ";
I I append(word, ch);
diese Methode ..
char ch = 'x';
haben
void append(char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
Es mir einen Segmentierungsfehler gibt, und ich verstehe, warum nehme ich an. Weil s[len]
außerhalb der Grenzen ist. Wie kann ich es so machen, dass es funktioniert? Ich muss auch die char*
viel löschen, wenn ich etwas wie Char-Wort verwenden würde [500]; Wie würde ich das klarstellen, sobald es einige Zeichen angehängt hat? Wäre die strlen
davon immer 500
? Danke im Voraus.
"Weil s [len] außerhalb der Grenzen liegt." <- Sehr gut für einen Anfänger entdeckt! Glückwunsch. Sie haben jedoch noch einen weiteren Fehler - ein String-Literal ist schreibgeschützt, Sie können seinen Inhalt nicht ändern. –
@ H2CO3 's [len + 1]' ist außerhalb der Grenzen. 's [len]' ist das Nullbyte, das nicht von 'strlen' gezählt wird. – pmr
@pmr yep, technisch richtig. Ich hätte stattdessen "sizeof (s)" schreiben sollen. –