使用 strncpy 将字符串的两个部分复制到另外两个字符串
Copy two parts of a string to two other strings using 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] = '[=10=]';
printf("%s\n", a);
strncpy( b, s+10, 6 );
b[6] = '[=10=]';
printf("%s %s\n", a, b);
return 0;
}
结果:
0123456789
ABCDEF
早有预料
0123456789
0123456789 ABCDEF
a怎么了?谁能告诉我哪里出了问题?
数组a和b不包含字符串。像这样声明它们
char a[11];
char b[7];
即为终止零字符多保留一个元素
否则这些语句
a[10] = '[=11=]';
b[6] = '[=11=]';
使用无效索引。
我想将字符串 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] = '[=10=]';
printf("%s\n", a);
strncpy( b, s+10, 6 );
b[6] = '[=10=]';
printf("%s %s\n", a, b);
return 0;
}
结果:
0123456789
ABCDEF
早有预料
0123456789
0123456789 ABCDEF
a怎么了?谁能告诉我哪里出了问题?
数组a和b不包含字符串。像这样声明它们
char a[11];
char b[7];
即为终止零字符多保留一个元素
否则这些语句
a[10] = '[=11=]';
b[6] = '[=11=]';
使用无效索引。