/*strncpy(s1, s2, n)函数把s2中的n个字符拷贝至s1中,n长过s2就加/0,不超过就不加/0
名为mystrncpy()。在一个完整的程序中测试该函数,使用一个循环给函
数提供输入值。*/
#include<stdio.h>
#define SIZE 40
void mystrncpy(char tr[],char sr[],int n);
int main(void)
{?? ?
?? ?int i = 1; ?
?? ?char tr[SIZE] = "aaaaaa";
?? ?char sr[3] = "bbb";
?? ?printf("%d\n",sizeof(tr));
?? ?
?? ?while(i!=0)
?? ?{
?? ??? ?printf("0 to quit\ninput copy number:\n");
?? ??? ?scanf("%d",&i);?
?? ??? ?while (getchar() != '\n')
? ? ? ??? ??? ?continue;
?? ??? ?mystrncpy(tr,sr,i);
?? ??? ?printf("%s\n",tr);
?? ?}
?? ?return 0;
}
void mystrncpy(char tr[],char sr[],int n)
{
?? ?int i;
?? ?if(n>sizeof(sr))
?? ?{
?? ??? ?for(i=0;i<n-sizeof(sr);i++)
?? ??? ??? ?tr[sizeof(sr)+i]='\0';
?? ?}
?? ?for(i=0;i<n;i++)
?? ??? ?tr[i]=sr[i];
}