1 .首先定义结构数组:
typedef struct BleAndTspRmtCmd{
char terminal[3];
char note[3];
char rmtCmd[10];
char cmdPropt[24];
(;
BleAndTspRmtCmd是结构体名称,根据该结构体名称,计算其他结构体变量、structBleAndTspRmtCmdvariable;
或结构数组变量,structbleandtsprmtcmdvariable [ ];
2 .或定义全局结构变量,然后单击、
typedef struct {
char terminal[3];
char note[3];
char rmtCmd[10];
char cmdPropt[24];
}BleAndTspRmtCmd;
然后,根据该结构体变量生成其他结构体变量、BleAndTspRmtCmd variable; 或数组变量BleAndTspRmtCmdvariable[];
3 .结构初始化方法:
zydhf :定义结构体数组变量时直接初始化(代入)。 结构内变量是字符数组,因此相当于字符串指针。 这是字符排列的特殊性。
structbleandtsprmtcmdmyrmdcmdset [ 28 ]={ ' XX ',' XX ',' XX ',' XX ',' XX ',' XX ',' XX ',' xx ', }
方法2 :定义结构数组,然后赋值。
structbleandtsprmtcmdmyrmdcmdset [ ]={ null };
这个代入方式分为两种,目前我成功验证的是:
先分配临时变量
int index=0;
char node_temp[4]='XX ';
char terminal_temp[4]='XX ';
char rmtCmd_temp[11]='XX ';
char cmdPropt_temp[24]='XX ';
然后,为结构数组变量指定临时变量并进行遍历。
一. strcpy,复制临时字符数组变量;
for (; 索引28; index )
{
src py (myrmdcmdset [ index ].terminal,terminal_temp );
strcpy(myrmdcmdset[index].note,node_temp );
strcpy (myrmdcmdset [ index ].rmt cmd,rmtCmd_temp;
strcpy (myrmdcmdset [ index ].cmdpropt,cmdPropt_temp );
}
第二,memcpy与第一个相似,但函数不同
for (; 索引28; index )
{
memcpy (myrmdcmdset [ index ].terminal,terminal_temp,sizeof ) terminal_temp );
memcpy(myrmdcmdset[index].note,node_temp,sizeof ) node_temp );
memcpy (myrmdcmdset [ index ].rmt cmd,rmtCmd_temp,sizeof ) rmtCmd_temp );
memcpy (myrmdcmdset [ index ].cmdpropt,cmdPropt_temp,sizeof ) cmdPropt_temp );
}
这样就完成了结构体数组变量的代入。
请注意,结构中的所有变量都是字符数组,因此它相当于指针,指向结构的相应地址,并且在输出时输出从指定地址开始的值,直到结构结束。
为了输出正确的值,printf需要剪切和对齐。
保持输出字符串:
printf('%s”,str;
2 .输出指定长度的字符串,长时不截断,不够时右对齐:
printf('%ns ',str ); -n是指定长度的十进制数字
3 .输出指定长度的字符串,过长时不截断,不足时左对齐:
printf('%-ns ',str ); -n是指定长度的十进制数字
4 .输出指定长度的字符串,长则舍去,不够时右对齐:
printf('%n.ms ',str ); -n是最终的字符串输出长度
-m是从参数字符串中检索到的子字符串的长度
5 .输出指定长度的字符串,长则舍去,短则左对齐:
printf('%-n.ms ',str ); -n是最终的字符串输出长度
-m是从参数字符串中检索到的子字符串的长度