在C中,我有两个char数组:
char array1[18] = "abcdefg";
char array2[18];
Run Code Online (Sandbox Code Playgroud)
如何复制的价值array1来array2?我可以这样做array2 = array1吗?
我试图了解如何以最干净/最安全的方式解决C中的这个微不足道的问题.这是我的例子:
#include <stdio.h>
int main(int argc, char *argv[])
{
typedef struct
{
char name[20];
char surname[20];
int unsigned age;
} person;
//Here i can pass strings as values...how does it works?
person p = {"John", "Doe",30};
printf("Name: %s; Age: %d\n",p.name,p.age);
// This works as expected...
p.age = 25;
//...but the same approach doesn't work with a string
p.name = "Jane";
printf("Name: %s; Age: %d\n",p.name,p.age);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
编译器的错误是:
main.c:在函数'main'中:main.c:18:错误:从类型'char*'分配类型'char [20]'时出现不兼容的类型
我知道C(不是C++)没有字符串类型而是使用字符数组,所以另一种方法是更改示例结构以保存字符指针:
#include <stdio.h>
int main(int argc, char *argv[])
{
typedef …Run Code Online (Sandbox Code Playgroud)