Bessere Vorschläge für diese c-Funktionen copyString, concatString
Ich wurde gebeten, 2 Funktionen copyString und concatString zu erstellen, die ich gemacht und beide implementiert habe, aber an der Ausgabe, die ich bekommen habe, wurde mir gesagt, dass es besser gemacht werden kann, aber nie erklärt wurde, wie.
Jetzt bringt es mich um, was ich besser machen könnte. Hier ist der Code und ich werde mich über Vorschläge freuen.
void copyString (char **strDst, const char *strSrc)
{
char *strTmp = NULL;
int length = strlen (src);
if (*strDst== NULL)
{
*strDst= malloc (length);
}
else
{
if (strlen(*strDst) != length)
{
strTmp = *strDst;
}
*strDst= malloc (length);
}
strcpy (*strDst, strSrc);
if (strTmp != NULL)
free (strTmp );
}
void concatString (char **strDst, const char *cat)
{
int cat_length = strlen (cat);
if (cat_length > 0)
{
*strDst= realloc (*strDst, strlen (*strDst) + cat_length);
strcat (*strDst, cat);
}
}
void main(int argc, char *argv[])
{
char *str = NULL;
copyString(&str, "Hello World");
puts(str);
copyString(&str,str+6);
puts(str);
concatString(&str, " Pesron");
}
Die Ausgabe sollte wie folgt sein:
1. Hallo Welt
2. Welt
3. Weltmensch
Vielen Dank.