为什么这个程序的strncpy函数功能不对
#include<stdio.h>#include<string.h>intmain(void){chars[]="ABCD";charc[]={0};intn=2;st...
#include <stdio.h>
#include<string.h>
int main(void)
{
char s[]="ABCD";
char c[]={0};
int n=2;
strncpy(c,s,n);
printf("%s",c);
return 0;
}
显示结果是 ABBCD 为什么 展开
#include<string.h>
int main(void)
{
char s[]="ABCD";
char c[]={0};
int n=2;
strncpy(c,s,n);
printf("%s",c);
return 0;
}
显示结果是 ABBCD 为什么 展开
1个回答
2017-07-13 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
向TA提问 私信TA
知道合伙人教育行家
采纳数:17564
获赞数:65155
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……
向TA提问 私信TA
关注
展开全部
#include <stdio.h>
#include<string.h>
int main(void)
{
char s[]="ABCD";
char c[3]={0}; //char c[]={0}; 会被编译器优化成char c[1]={0};改成char c[3]={0};
//目标数组的大小至少要比复制字符数目多1,且来存放字符串结尾字符'\0'
int n=2;
strncpy(c,s,n);
printf("%s",c);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询