70,037
社区成员
发帖
与我相关
我的任务
分享#include<stdio.h>
#include<string.h>
char *my_strcpy(char *dest, int dest_len, const char *src, int src_len)
{
int i;
int len;
if((dest==NULL)||(src == NULL))
return NULL;
len = (dest_len - 1)>src_len?src_len:(dest_len - 1);
for (i = 0; i < len;i++)
{
dest[i] = src[i];
}
dest[i] = '\0';
return dest;
}
void main()
{
char dest[10];
char src[] = "1234567890qw";
my_strcpy(dest,10,src,strlen(src));
printf("%s",dest);
}
char *strncpy(char *dest, const char *src, size_t count)
{
char *tmp = dest;
while(count)
{
if ((*tmp = *src) != '/0')
src++;
tmp++;
count--;
}
return dest;
}
#include <cruntime.h>
#include <string.h>
/***
*char *strncpy(dest, source, count) - copy at most n characters
*
*Purpose:
* Copies count characters from the source string to the
* destination. If count is less than the length of source,
* NO NULL CHARACTER is put onto the end of the copied string.
* If count is greater than the length of sources, dest is padded
* with null characters to length count.
*
*
*Entry:
* char *dest - pointer to destination
* char *source - source string for copy
* unsigned count - max number of characters to copy
*
char * __cdecl strncpy(char * dest, const char * source, size_t count)
{
char *start = dest;
while (count && (*dest++ = *source++)) /* copy string */
count--;
if (count) /* pad out with zeroes */
while (--count)
*dest++ = '\0';
return(start);
}