C * char指向char数组的指针

时间:2014-11-15 08:53:51

标签: c arrays string pointers

我有一个* 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);

但这不起作用。

3 个答案:

答案 0 :(得分:2)

a的大小为10b的长度也是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()在任何情况下都会更快,因为它通常用汇编语言编写,用于特定的架构