如何将值从结构复制到char数组

时间:2012-03-18 17:36:41

标签: c project

很抱歉,如果问题不明确。我的术语词汇很糟糕。无论如何我想将字符串设置为结构。例如,如果我的结构定义为:

struct all_routes{
  int id;
  char departure_code[4];
  char arrival_code[4];
};
struct all_routes all_routes_divid[500];

我添加我想设置一个字符串,以包含从这个结构数组的一个元素中获取的值:

char firs_airport_code[4] = all_routes_divid[1].departure_code;

我该怎么做?

1 个答案:

答案 0 :(得分:4)

使用strcpy -

char firs_airport_code[4]; 
......
strcpy(firs_airport_code, all_routes_divid[1].departure_code);

或使用memcpy -

char firs_airport_code[4]; 
......
memcpy(firs_airport_code, all_routes_divid[1].departure_code, 4);

或使用strncpy -

char firs_airport_code[4]; 
......
strncpy(firs_airport_code, all_routes_divid[1].departure_code, 4);

我建议使用strcpy来简化(因为它通常用于复制字符串,名称也很直观;-))。但有时memcpy执行速度比strcpy快,因为它一次移动内存块,允许它执行一些优化(我不会在这里详述)。