“`” 参考回答:

模拟strcpy:

<pre><code class=""language-c"" lang=""c"">char* my_strcpy(char* dst, const char*src)
{
assert(dst != NULL);
assert(src != NULL);
char *ret = dst;
while (*dst = *src)
{
dst++, src++;
}
return ret;
}
</code></pre>

模拟strncpy:

<pre><code class=""language-c"" lang=""c"">char* my_strncpy(char* dst,const char* src,int n)
{
assert(dst!=NULL);
assert(src!=NULL);
char* ret=dst;
while(n)
{
*dst=*src;
dst++;
src++;
n–;
}
if(*(dst-1)!='\0')
{
*dst='\0';
}
return ret;
}
</code></pre>

模拟strcat:

<pre><code class=""language-c"" lang=""c"">char *my_strcat(char* dst, char* src)
{
assert(dst != NULL);
assert(src != NULL);
char *ret = dst;
while (*dst)
{
dst++;
}
while (*dst = *src)
{
dst++, src++;
}
return ret
</code></pre>

模拟strncat:

<pre><code class=""language-c"" lang=""c"">char *my_strncat(char* dst, const char *src, int n)
{
assert(dst != NULL);
assert(src != NULL);
char *ret = dst;
while (*dst)//将dst的指针移到‘\0'处
{
dst++;
}
while (n)
{
*dst = *src;
dst++, src++;
n–;
}
if (*(dst – 1) != '\0')
{
*dst = '\0';
}
return ret;
}

</code></pre>

 

 

<pre><code> "“`

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.