[英]C *char pointer to char array
我有一个* 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);
但这是行不通的。
的大小a
是10
,所以是的长度b
(包括空终止)。 更改
for(i = 0; i < 9; i++)
至
for(i = 0; i < 10; i++)
你在做什么是对的。
突出会在for循环中更改i<10
。
char数组中有10个元素,数组索引为0-9
。
另一个变体:
#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()
在任何情况下都可以更快地工作,因为它通常是针对特定体系结构用汇编语言编写的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.