我被要求制作 2 个函数 copyString 和 concatString 我做了并实现了它们,但是在我得到的输出中我被告知它可以做得更好,但从来没有解释过如何做。
现在它正在杀死我我能做的更好所以这里是代码,我很乐意听到任何建议。
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");
}
输出应如下所示:
1.Hello World
2. World
3. World Person
谢谢。