C ++ Update Struct

时间:2017-05-09 16:13:58

标签: c++ arrays string struct assign

我有这个:

typedef struct {
    char nome[50];
    char morada[100];
    char codpostal[8];
    char localidade[30];
    int telefone;
    int nContribuinte;
} CLIENTE;
CLIENTE c;

如何更新c.nome之类的c.nome = "something";?无法弄清楚为什么这不起作用... c已经填充了保存在二进制文件中的已知信息

我应该这样做:if (Conf == 1) { scanf("%s", c.nome); } else { c = Clt.nome; }

1 个答案:

答案 0 :(得分:3)

对于类似C的字符串,请使用strcpy(),如下所示:

strcpy(c.nome, "something");

您尝试的不起作用的原因是您使用了类似C的字符串,而不是std::string,这是C ++方法,并且已经重载了赋值运算符。在这种情况下,您的结构将如下所示:

#include <string>

struct CLIENTE {
    std::string nome;
    ...
};
CLIENTE c;
c.nome = "something";

您可以避免使用typedef,如Difference between 'struct' and 'typedef struct' in C++?

中所述
  

在C ++中,所有 struct声明都像隐式一样   typedef'ed ,只要该名称不被另一个声明隐藏   同名。