Ich versuche, Zeichen mit anderen Manipulationen von einem Zeiger zum anderen zu kopieren. Ich habe versucht, strcat(), strncat(), strcpy(), strncpy() zu verwenden, aber immer Fehler zu bekommen. Wie kann ich ein Zeichen vom Quellzeiger zum Zielzeiger kopieren?
Ich übersetzte ursprünglich einfache Anführungszeichen als arg 2 von strcat und es hat nicht funktioniert. Als ich es in doppelte Anführungszeichen änderte, funktionierte es. Hat es etwas mit "String-Konstanten" oder "Charakter-Konstanten" oder etwas ganz anderem zu tun?C Zeichen-für-Zeichen-Zeichenfolgenmanipulation von const char * src zu char * dest
void korsoroi(char *dest, const char *src) {
int wcount = 0;
int i = 0;
while (src[i] != '\0') {
if (src[i] == 'k' && src[i + 1] == 's') {
strcat(dest, "x");
i++;
}
else if (src[i] == 't' && src[i + 1] == 's') {
strcat(dest, "z");
i++;
}
else if (src[i] == ' ') {
wcount++;
if (wcount % 3 == 0) {
strcat(dest, " niinku");
}
if (wcount % 4 == 0) {
strcat(dest, " totanoin");
}
}
else {
//expected 'const char *' but argument is of type 'char'
// strcat(dest, src[i]);
// strcat(dest, *(src + i);
//warning: cast to pointer from integer of different size
// strcat(dest, (char*)src[i]);
//returns strange characters but compiles
//dest[strlen(dest)] = src[i];
}
i++;
}
}
http://2016-aalto-c.tmchq.co/en/Module_2/ Aufgabe 08
ist 'dest' beschreibbar und genügend Speicher hat? –
Sie können davon ausgehen, dass an der Adresse dest genügend Speicherplatz vorhanden ist, um die resultierende Zeichenfolge zu speichern. –