C语言结构体通过 scanf初始化,C语言结构体数组内带字符数组初始化和赋值

1.首先定义结构体数组:

typedef struct BleAndTspRmtCmd{

char terminal[3];

char note[3];

char rmtCmd[10];

char cmdPropt[24];

};

BleAndTspRmtCmd为结构体名,可以通过这个结构体名定义其他结构体变量,struct BleAndTspRmtCmd variable;

或者定义结构体数组变量,struct BleAndTspRmtCmd variable[];

2.或者定义全局结构体变量,

typedef struct {

char terminal[3];

char note[3];

char rmtCmd[10];

char cmdPropt[24];

}BleAndTspRmtCmd;

然后根据这个结构体变量定义其他结构体变量,BleAndTspRmtCmd variable;或者数组变量BleAndTspRmtCmd variable[];

3.初始化结构体方法:

方法一:定义结构体数组变量的时候直接初始化(赋值),因为结构体内变量为字符数组,也就相当于字符串指针,这是字符数组的特殊性。

struct BleAndTspRmtCmd myRmdCmdSet[28] = {{"XX", "XX", "XX", "XX"}, {"XX", "XX", "XX", "XX"}......}

方法二:先定义结构体数组,后面再赋值。

struct BleAndTspRmtCmd myRmdCmdSet[] = {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 (; index < 28; index ++)

{

strcpy(myRmdCmdSet[index].terminal, terminal_temp);

strcpy(myRmdCmdSet[index].note, node_temp);

strcpy(myRmdCmdSet[index].rmtCmd, rmtCmd_temp);

strcpy(myRmdCmdSet[index].cmdPropt, cmdPropt_temp);

}

第二:memcpy,与第一种类似,只是函数不一样;

for (; index < 28; index ++)

{

memcpy(myRmdCmdSet[index].terminal, terminal_temp, sizeof(terminal_temp));

memcpy(myRmdCmdSet[index].note, node_temp, sizeof(node_temp));

memcpy(myRmdCmdSet[index].rmtCmd, rmtCmd_temp, sizeof(rmtCmd_temp));

memcpy(myRmdCmdSet[index].cmdPropt, cmdPropt_temp, sizeof(cmdPropt_temp));

}

此时就完成了结构体数组变量的赋值。

注意,由于结构体内的变量都是字符数组,相当于指针,他们都指向结构体对应的地址,输出时就会输出指向的地址开始的值,直到该结构体完。

要想输出正确的值,printf必须进行截取和对齐。

原样输出字符串:

printf("%s", str);

2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:

printf("%Ns", str);             --N 为指定长度的10进制数值

3. 输出指定长度的字符串, 超长时不截断, 不足时左对齐:

printf("%-Ns", str);            --N 为指定长度的10进制数值

4. 输出指定长度的字符串, 超长时截断, 不足时右对齐:

printf("%N.Ms", str);           --N 为最终的字符串输出长度

--M 为从参数字符串中取出的子串长度

5. 输出指定长度的字符串, 超长时截断, 不足时左对齐是:

printf("%-N.Ms", str);          --N 为最终的字符串输出长度

--M 为从参数字符串中取出的子串长度

C语言 结构体中的零长度数组

/* C语言零长度数组大小和取值问题 */ #include #include #include s ...

读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

原文链接:C语言结构体里的成员数组和指针 复制例如以下: 单看这文章的标题,你可能会认为好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Lar ...

06&period; Go 语言结构体

Go语言结构体(struct) Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. Go 语言中的类 ...

Linux C语言结构体-学习笔记

Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

【嵌入式开发】C语言 结构体相关 的 函数 指针 数组

. 作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行 ...

c语言结构体

[C语言]21-结构体 本文目录 一.什么是结构体 二.结构体的定义 三.结构体变量的定义 四.结构体的注意点 五.结构体的初始化 六.结构体的使用 七.结构体数组 八.结构体作为函数参数 九.指向结 ...

浅谈c语言结构体

对于很多非计算机专业来说,c语言课程基本上指针都不怎么讲,更别说后面的结构体了.这造成很多学生对结构体的不熟悉.这里我就浅谈一下我对结构体的认识. 结构体,就是我们自己定义出一种新的类型,定义好之后, ...

C语言结构体-struct

知识点: 1)结构体的定义. 2)结构体的sizeof. 3)  结构体的指针. 1) 结构体的定义: 在逻辑上有一定关联的多个数据类型做为一整体进行操作的数据结构,它的关键字是struct.下面我将 ...

不可或缺 Windows Native &lpar;8&rpar; - C 语言&colon; 结构体,共用体,枚举,类型定义符

[源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

随机推荐

K-近邻算法(KNN)

简介 k近邻算法是数据分类一种常用的算法,属于监督学习算法的一类,它采用不同特征值之的距离进行分类.K近邻算法具有精度高.对异常值不敏感.无数据输入假定的优点,缺点是计算复杂度高.空间复杂度高.适用于 ...

Eclipse设置不格式化注释

Eclipse设置不格式化注释 注释中写点带格式的文字,format后全乱了,解决办法如下: Windows -> Preferces -> java -> Code Style - ...

java&lpar;2014版&rpar;连接数据库的工具类

package util; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...

AngularJS如何使用ngRepeat过滤排序

NG重复指令,带过滤器,像这样:

BeginInvoke 方法真的是新开一个线程进行异步调用吗?

转自原文BeginInvoke 方法真的是新开一个线程进行异步调用吗? BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: public delegate void tre ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zigbee智能家居

近几年来&#xff0c;智能家居设备的增长速度是极快的。曾经也被称作家庭自动化&#xff0c;和现在的“物联网”&#xff0c;已经转化为我们更加方便理解的类型了&#xff0c;我们统称为智能家居。现在不断出现的暖气、照明、摄像头、和传感器以及现在不断出现的新设备&#xf…

物联网和互联网的区别

互联网开始于1969年美国的阿帕网。是网络与网络之间做成的一种网络形式。这些网络通过一组通用的协议连接&#xff0c;形成一个巨大的国际性网络。通常interne就是泛指互联网&#xff0c;而Internet则指的是因特网。这种将计算机网络相互链接在一起的方式就称作“网络互联”&am…

JMetro版本5.3已发布

JMetro的另一个版本刚刚发布。 这次是5.3版。 在此版本中&#xff0c;为尚未使用的控件添加了一些新样式。 还调整了一些较旧的样式&#xff0c;并修复了一些错误。 我还将展示一些使用JMetro的大公司。 诸如Google&#xff0c;Amazon等的名称。 以下是添加的样式&#xff1a…

c语言文件指针ab命令,C语言试题,~库(完整版~).doc

-_C语言试题库单项选择C语言概述一个C程序的执行是从A、本程序的MAIN函数开始&#xff0c;到MAIN 函数结束。B、本程序文件的第一个函数开始&#xff0c;到本程序文件的最后一个函数结束。C、本程序的MAIN函数开始&#xff0c;到本程序的最后一个函数结束。D、本程序文件的第一…

电话光端机安装的方法,电话光端机设备安装注意事项

电话光端机就是把传统的电话信号转换成光信号并在光纤上传输的设备&#xff0c;其设备内置精密器件&#xff0c;请注意轻拿轻放&#xff0c;避免剧烈震动&#xff0c;以免影响设备性能。如果您发现设备在运输过程中被损坏或丢失了任何部件&#xff0c;请通知飞畅科技售后服务部…

“智慧灯杆”的应用和解决方案

路灯是我们照亮城市的基础应用&#xff0c;遍布在我们城市的每个角落。应用我们新的物联网、云计算等技术&#xff0c;可以形成一个“路联网”系统。通过整合所有的路灯&#xff0c;将传感设备安装到路灯上&#xff0c;这就构成了我们新型城市的网络基础——“智慧路灯”。 物…

小白也能轻松看懂的lora物联网!

什么物联网场景用LoRa&#xff1f; 在偏远地区&#xff0c;如果没有NB-IoT信号&#xff0c;那么就更适合用LORA了。例如高原地区的牛羊定位管理&#xff0c;养牦牛的或者是养跑山猪的。或者是物联网设备很密集的地方&#xff0c;LORA也会比NB更便宜。例如智慧小区、智慧园区等等…

java字符串加入空格_Java终于可以加入字符串

java字符串加入空格我确定您处于想要连接多个字符串的情况。 如果您使用的不是Java编程语言&#xff0c;则可能使用了该编程语言提供的join&#xff08;&#xff09;函数。 如果使用Java&#xff0c;则无法执行此操作。 没有join&#xff08;&#xff09;方法。 Java标准类库为…

c语言 多线程 参数,如何用C语言实现多线程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Windows操作系统&#xff0c;C语言实现多线程&#xff1a;#include #include DWORD APIENTRY ThreadOne ( LPVOID threadArg ){printf ( "线程开始啦&#xff0c;参数是&#xff1a;%s\n" , (char *)threadArg );return …

电话光端机技术参数配置介绍

现如今&#xff0c;随着国内通信网络技术的飞速发展&#xff0c;电话光端机的应用范围也是越来越广&#xff0c;我们在使用电话光端机的过程中&#xff0c;首先必须得了解电话光端机&#xff0c;比如说电话光端机的各项参数设置等等&#xff0c;只有清楚的了解电话光端机&#…

【知识科普】LPWA是什么

LPWA – Low power wide area,简称为低功耗广域技术&#xff0c;是一种功耗低却能实现远距离无线信号传输的一种技术&#xff0c;相对于我们比较熟悉的低功耗蓝牙&#xff08;BLE&#xff09;、wifi、zigbee等技术来说&#xff0c;LPWA的传输距离会更远&#xff0c;一般的传输距…

您准备好观看GraphQL了吗?

在上一篇文章中&#xff0c;我们讨论了GraphQL与REST相比的优势。 在本文中&#xff0c;我们将看到GraphQL的实际应用。 我创建了一个示例应用程序来展示REST和GraphQL之间的差异。 首先&#xff0c;我们将看到简单产品详细信息终点的REST实现。 我已经使用Spring Boot演示REST…

基于c语言的db2数据库开发,DB2日志(2) 用C语言扩展实现DB2日志管理及主备同步

还好DB2提供了相关的USEREXIT程序(又名用户出口程序)可以使我们管理日志文件并有了扩展功能的可能性&#xff0e;在这一点上DB2明显要比Oracle开放些&#xff0e;实现1.首先将USEREXIT接口打开,让数据库支持USEREXIT程序--查看当前状态(Windows环境下)db2 get db cfg for XCLDB…

基于ZigBee 自组网模块的路灯控制网络

相关数据显示&#xff0c;中国有600多个城市在进行智慧化建设。智慧城市最关键的特征就是串联整座城市&#xff0c;整个城市互相联动。路灯是城市必不可少的市政基础设施。要发展智慧城市&#xff0c;智慧路灯物联网是一个切入口。目前很多城市也在大力推广功能多样的智慧路灯&…

安防监控工程中该如何选择光端机?

目前市场上多路数字视频光端机&#xff0c;涉及的技术指标种类繁多&#xff0c;大部分工程上和用户也缺乏相应的手段而无法判断技术指标是否合理和真实&#xff0c;因此在选择产品时&#xff0c;容易迷失方向。今天&#xff0c;飞畅科技的小编从两个方面来描述在安防工程中比较…

你一定要了解的NB-IoT !

NB&#xff0d;IoT是指窄带物联网&#xff08;NarrowBand&#xff0d;InternetofThings&#xff09;技术。NB-IoT聚焦于低功耗广覆盖&#xff08;LPWAN&#xff09;物联网&#xff08;IoT&#xff09;市场&#xff0c;是一种可在全球范围内广泛应用的新兴技术。 说起NB-IoT的引…

c语言strcpy函数 内部分配,C语言strcpy函数实现.

看面试题的时候有个题目是不使用库函数,实现strcpy函数.(字符串拷贝函数)这个是我写的代码,在机器上编译过了.void my_strcpy(char *t,char *s){while((*t*s));}看了很多帖子,发现我这个代码的问题还是很多的.即使这么简单的一个小程序也有很多的东西需要考虑.下面总结:1.关于函…

光端机需要成对使用吗?

有些新客户坏了一个其他品牌的设备&#xff0c;想买一个设备去替换&#xff0c;总会来质询&#xff0c;“光端机要成对使用吗&#xff1f;”。答案是对的&#xff0c;其实光端机要成对使用的。光端机是用在以光纤作为载体的光、电传换器。发送端和接收端必须是同一种设备。那么…

LoRa 和NB-IoT 那个才是智慧停车低成本的最佳选择

随着现在城市发展&#xff0c;人们的生活水平也是在逐渐的提高&#xff0c;并且大部分的家庭也是配备了汽车&#xff0c;但是一说到停车这个话题&#xff0c;尤其是大城市不得不说停车难的问题。因为停车问题的逐渐发酵&#xff0c;所以智慧停车也就因运而生了。 智慧停车发展潜…

vert.x_选择Vert.x的3个理由

vert.xVert.x是用于JVM的轻量级高性能应用程序平台 现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望。 Node.js是第一个识别范式转换并提供解决方案的技术。 应用程序平台Vert.x继承了Node.js的一些创新&#xff0c;并使其在JVM上可用&#xff0c;将新鲜的想法与…