strncpy复制指定大小的字符串

  不管是面试还是日常使用,这个都是经常需要用到的。所以写一个以后自己用。

#include <stdio.h>

char *MyStrcpy_n(char *dst[], char *src[], unsigned int CopyNum);

int main(int argc, char *argv[])
{
    char mystring[6] = "";
    char srcstring[] = "This is test string!";

    MyStrcpy_n(mystring, srcstring, sizeof(mystring));
    printf("%s\n", mystring);
    return 0;
}
/*
MyStrcpy_n(mystring, srcstring, sizeof(mystring));
*/
char *MyStrcpy_n(char *dst, const char *src, unsigned int CopyNum)
{
    int i;
    
    for(i = 0; i < CopyNum; i++)
    {
        dst[i] = src[i];
    }
    dst[i] = '\0';
}

运行结果:

This i
Press any key to continue . . .

反汇编结果:

 

再转一段书上的代码:

void copy_n(char dst[], char src[], int n)
{
    int dst_index , src_index;
    
    src_index = 0;
    
    for(dst_index = 0; dst_index < n; dst_index += 1)
        dst[dst_index] = src[src_index];
        if(src[src_index] != 0)
        src_index++;
}

这段代码我在c-free 5.0上运行好像有问题。回头再看看。。

2012-9-10

 

posted @ 2012-09-11 00:13  markro  阅读(115)  评论(0)    收藏  举报