相关疑难解决方法(0)

如何在C中复制char数组?

在C中,我有两个char数组:

char array1[18] = "abcdefg";
char array2[18];
Run Code Online (Sandbox Code Playgroud)

如何复制的价值array1array2?我可以这样做array2 = array1吗?

c arrays copy char

68
推荐指数
5
解决办法
38万
查看次数

如何正确分配新的字符串值?

我试图了解如何以最干净/最安全的方式解决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)

c string struct strcpy

45
推荐指数
3
解决办法
16万
查看次数

标签 统计

c ×2

arrays ×1

char ×1

copy ×1

strcpy ×1

string ×1

struct ×1