c-使用strncpy将字符串的两个部分复制到另外两个字符串



我想将字符串s的两个部分复制到两个字符串a和b:

#include <stdio.h>
#include <string.h>
int main()
{
char s[] = "0123456789ABCDEF";
char a[10];
char b[6];
strncpy( a, s, 10 );
a[10] = '';
printf("%sn", a);
strncpy( b, s+10, 6 );
b[6] = '';
printf("%s  %sn", a, b);
return 0;
}

结果:

0123456789
ABCDEF

我本以为

0123456789
0123456789  ABCDEF

a发生了什么事?有人能告诉我怎么了吗?

数组a和b不包含字符串。像一样申报

char a[11];
char b[7];

即为终止零字符保留一个元素。

否则,这些语句

a[10] = '';
b[6] = '';

使用无效索引。

相关内容

  • 没有找到相关文章

最新更新