如何将String分配给驻留在C中的结构中的char数组?

时间:2015-03-20 12:47:10

标签: c arrays string pointers

这是我希望它编译的代码,但它没有:

#include <stdio.h>
#include <stdlib.h>

typedef struct turtle {
    char name[20];
    int age;
} turtle;

int main(){

    turtle koray = {"koray",25};
    turtle halim;

    halim.name = "halim"; // This line will cause in compile error.
    halim.age = 25;

    printf("%s\n",koray.name);
    printf("%s\n",halim.name);

}

我做错了什么?

这符合成功,但打印垃圾:

*(halim.name) = "halim";
垃圾我的意思是:

koray
p

2 个答案:

答案 0 :(得分:3)

您可以通过阅读错误消息找出答案。

error: incompatible types in assignment of ‘const char [6]’ to ‘char [20]’

"halim"const char [6]namechar [20],他们直接cannot be assigned

改为使用strcpy()

strcpy(halim.name,"halim");

答案 1 :(得分:1)

无法分配C数组。 (但是可以根据定义初始化它们。)

填写C - &#34;字符串&#34;使用strcpy()

strcpy(halim.name, "halim");