码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C语言:动态分配结构体数组存取整型和二进制数据


    问题

    5 00 01
    6 01 11
    上面是我从键盘输入的两行数据
    例如:5 00 01
    5是整型 00和01是两个二进制字符
    三个数据用空格隔开请问我要如何定义结构体数组来存取这一行数据?

    定义结构体

    struct Data {
        int integerData;
        char binaryData1[2];
        char binaryData2[2];
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    创建结构体数组

    struct Data dataArray[2]; // 为两行数据创建数组
    
    
    • 1
    • 2

    读取键盘输入

    for (int i = 0; i < 2; i++) {
        scanf("%d %s %s", &dataArray[i].integerData, dataArray[i].binaryData1, dataArray[i].binaryData2);
    }
    
    
    • 1
    • 2
    • 3
    • 4

    存取

    for (int i = 0; i < 2; i++) {
        printf("Row %d: Integer=%d, Binary1=%s, Binary2=%s\n", i, dataArray[i].integerData, dataArray[i].binaryData1, dataArray[i].binaryData2);
    }
    
    
    • 1
    • 2
    • 3
    • 4

    思考1

    二进制字符00存到字符数组里面的时候不用考虑\0吗?

    将二进制字符"00"存储到字符数组中时,通常不需要添加\0,因为\0通常表示字符串的结束。二进制字符"00"被存储为两个连续的字节,它们可以在字符数组中表示为两个字符,而不需要额外的字符串终止字符。

    \0是C语言中的字符串终止字符,用于表示字符串的结束。通常,在字符数组中存储字符串时,会在最后一个字符后面自动添加\0来标识字符串的结束。但是,对于二进制数据,我们可以将它们存储在字符数组中,而无需\0,因为这些数据不一定是以字符串的形式存储的。

    如果我们要处理二进制数据,通常会使用char数组或unsigned char数组,而不将其解释为以\0结尾的字符串。只有当我们需要将这些数据作为字符串处理时,才需要添加\0以标识结束。

    所以,二进制字符"00"可以存储在char数组中,而不需要额外的\0字符。但是,如果我们打算将这些数据用作字符串,我们可能需要添加\0以使其成为有效的C字符串。

  • 相关阅读:
    C++独立编译和命名空间
    Dubbo订阅发布的实现原理
    SpringBoot集成EasyExcel快速人们
    Ceph入门到精通-Nginx 大量请求 延迟优化
    如何在虚拟机 Ubuntu 20.04 上安装 VMware Tools
    c语言实现通讯录
    多线程&并发篇---第十四篇
    【数据结构】线性表(十)队列:循环队列及其基本操作(初始化、判空、判满、入队、出队、存取队首元素)
    PTrade和QMT对比那个更好用?
    从零开始应用LSTM网络
  • 原文地址:https://blog.csdn.net/m0_62865498/article/details/133802375
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号