strcpy函数

编写函数copy_n,它的原型如下所示:

  void copy_n( char dst[], char src[], int n);

这个函数用于把一个字符串从数组src复制到数组dst,但有如下要求:必须正好复制n个字符到dst数组中,不能多,也不能少。如果src字符串长度小于n,你必须在复制后的字符串尾部补充足够的NUL字符,使它的长度正好为n。如果src的长度长于或等于n那么你在dst中存储了n个字符后便可停止。此时,数组dst将不是以NUL字符结尾。注意调用copy_n时,它应该在dst[0]至dst[n-1]的空间中存储一些东西,但也只局限于那些位置,这与src长度无关

#include <stdio.h>
#include <stdlib.h>

void copy_n(char dst[], char src[], int n);

int main(int argc, char *argv[])
{
    char src[5] = {'a','b','c','d', '\0'};
    char dst[9];
    int n = 6;
    int i;

    copy_n(dst, src, n);

    for(i = 0; i < 6; i++)
    printf("%c",dst[i]);

  system("PAUSE");
  return 0;
}

void copy_n(char dst[], char src[], int n)
{
    char *psrc = src ;
    char *pdst = dst;
    while(n)
    {
        if(*psrc == '\0')
        {
            *pdst = '\0';
            pdst++;
        }
        else
            *pdst++ = *psrc++;
        n--;
    }
}


你可能感兴趣的:(c,函数,strcpy)