C関数ライブラリでのstrncpy実装
1653 ワード
/*
*copyright@nciaebupt
* :extern char *strncpy(char *dest, char *src, int n);
* :#include <string.h>
* : src NULL n dest 。
* :
* src n NULL , NULL 。
* src n , NULL dest n 。
* src dest dest src 。
* dest 。
* C strncpy
*/
#include <cstdio>
#include <cstring>
int main(int args,char **argv)
{
char str1[] = "To be or not to be";
char str2[40];
char str3[40];
strncpy(str2,str1,sizeof(str1));
strncpy(str3,str1,5);
str3[5] = '\0';
printf("str2 : %s
str3 : %s
",str2,str3);
getchar();
return 0;
}
/*
*copyright@nciaebupt
* :extern char *strncpy(char *dest, char *src, int n);
* :#include <string.h>
* : src NULL n dest 。
* :
* src n NULL , NULL 。
* src n , NULL dest n 。
* src dest dest src 。
* dest 。
* strncpy
*/
#include <cstdio>
char * _strncpy(char * dest,const char * src,size_t count)
{
char * ret = dest;
while(count && (*dest++ = *src++))
count--;
if(count)
{
while(--count)
{
*(dest++) = '\0';
}
}
return ret;
}
int main(int args,char ** argv)
{
char str1[] = "To be or not to be";
char str2[40];
char str3[40];
_strncpy(str2,str1,sizeof(str1));
_strncpy(str3,str1,5);
str3[5] = '\0';
printf("str2 : %s
str3 : %s",str2,str3);
getchar();
return 0;
}