C Primer Plus(第六版)11.13 编程练习 第7题

发布时间:2024年01月14日

/*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];
}

文章来源:https://blog.csdn.net/apple_50569014/article/details/135552092
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。