Ich muss eine Funktion herstellen, die zwei Strings verkettet, aber ich muss ein '\ n' nach dem ersten Wort hinzufügen. Ich habe alles herausgefunden, und aus irgendeinem Grund gibt es nichts aus. Irgendwelche Ideen? Es muss wahrscheinlich etwas mit den Zeigern machen. Ich kann mich einfach nicht um sie kümmern. Hier ist der Code.Funktion druckt das Ergebnis nicht aus
char *function(char *s1, char *s2){
char *newStr;
int size;
size = strlen(s1) + strlen(s2);
newStr = (char *)malloc((size+1)*sizeof(char));
while(*s1!= '\0'){
*newStr = *s1;
newStr++;
s1++;
}
*newStr = '\n';
newStr++;
while(*s2 != '\0'){
*newStr = *s2;
newStr++;
s2++;
}
*newStr = '\0';
return newStr;
}
int main (int argc, const char * argv[]) {
char *str1 = "Hello";
char *str2 = "World";
printf("%s",function(str1, str2));
return 0;
}
So als Ergebnis sollte ich:
Hello
World
aber ich bin nicht etwas zurückbekommen.
Es ist immer noch nicht, ich habe eine Warnung an * p erhalten = Ergebnis sagen funktioniert „Zuordnung macht Ganzzahl ohne Besetzung von Zeiger.“ – captain
Nein, es funktioniert gut. Sie müssen falsch kopiert haben. Zum Beispiel: http://ideone.com/jQhMj –