c语言 怎么把指针里的内容赋值到数组里?

Python020

c语言 怎么把指针里的内容赋值到数组里?,第1张

int main()

{

char* p="hefhiefu"

char a[10]

strcpy(a,p)

printf("%s",a)

return 0

}

你这种错误就是不能从char* 赋值给char[64],这是很基础的指针问题,数组名代表数组的首地址是不允许修改的,指针可以修改,字符串数组复制可以一个字符一个字符赋值,也可以用memcpy()函数赋值,当然如果传入的是字符串的话还可以使用strcpy()函数

数组声明的时候就要指定大小的

可以用memcpy,对于字符串,也可以用strcpy或strncpy(需要包含string.h)

比如:

char

*p="abc"

char

a[10]

memcpy(a,p,sizeof(a))

或者

strcpy(a,p)

或者

strncpy(a,p,sizeof(a))/*

比上面的strcpy安全

*/

PS:关于sizeof,取数组的时候是数组的大小,指针的话,32位机器,会是4,所以字符串指针不用sizeof取长度,用strlen()