关于结构体与字符串相互转换验证

Posted wzqstudy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于结构体与字符串相互转换验证相关的知识,希望对你有一定的参考价值。

/*************************************************************************
    > File Name: memtest.c
    > Author: 
    > Mail: 
    > Created Time: Thu 27 Dec 2018 05:47:37 PM CST
 ************************************************************************/

#include<stdio.h>
#define N 50
#define IPSIZE 15
struct ClientInfo{
    char headName[N];        
    char name[N];            
    int num;                
    char ip[IPSIZE];    
};

int main(int argc,char **argv)
{
    struct ClientInfo aaa;
    strcpy(aaa.headName,"aaaaaaaaaaaaa");
    strcpy(aaa.name,"bbbbbbbbb");
    aaa.num = 10;
    strcpy(aaa.ip,"ccccccc");
    char buf[200];
    memcpy(buf,&aaa,sizeof(aaa));
    struct ClientInfo bbb;
    memcpy(&bbb,buf,sizeof(bbb));
    printf("%s
",bbb.headName);
    printf("%s
",bbb.name);
    printf("%d
",bbb.num);
    printf("%s
",bbb.ip);
}

输出结果:

aaaaaaaaaaaaa
bbbbbbbbb
10
ccccccc

这里要注意结构体的字节对齐规则 

后续会把相关知识录入博客




以上是关于关于结构体与字符串相互转换验证的主要内容,如果未能解决你的问题,请参考以下文章

Golang basic_leaming结构体和 Json 相互转换序列化反序列化

Golang basic_leaming结构体和 Json 相互转换序列化反序列化

Go -- 中结构体与字节数组能相互转化

Go 结构体与 JSON 之间的转换

共用体与枚举

结构体与联合体的区别