我有一个* char指针和一个char数组。 如何将指针的值放在char数组中?我试过了
uint8_t i;
char a[10];
char *b = "abcdefghi";
for(i = 0; i < 9; i++)
{
a[i] = b[i];
}
printf("%s", a);
但这不起作用。
答案 0 :(得分:2)
a
的大小为10
,b
的长度也是for(i = 0; i < 9; i++)
(包括空终止符)。变化
for(i = 0; i < 10; i++)
到
{{1}}
答案 1 :(得分:0)
你在做什么是正确的。
Juts在你的for循环中更改i<10
。
char数组中有10个元素,数组索引来自0-9
。
答案 2 :(得分:-1)
又一个变种:
#include <stdio.h>
int main(void)
{
char a[10];
char *c = a;
char *b = "abcdefghi";
for(; *c = *b; ++c, ++b);
printf("%s", a);
return 0;
}
但strcpy()
在任何情况下都会更快,因为它通常用汇编语言编写,用于特定的架构