strcpy-C语言结构体之间的复制

问题描述

C语言结构体之间的复制

怎么实现C语言中一维结构体与二维结构之间的复制,比如我现在有两个结构体,都是XML_DATA类型的,其中一个是m_data[10],另外一个是m_sava[10][10],为什么执行strcpy(m_save[k++],m_data);语句不能把m_data中的所有内容复制给m_save了?求大神指点呀,谢谢!

解决方案

最简单的是memcpy函数

解决方案二:

C语言中结构体变量复制的例子
C语言之结构体
c语言中的结构体

解决方案三:

strycpy是用来在字符串之间进行复制,而你结构体它是组合类型数据结构
如果你的结构体都是标准数据类型,那么可以直接用memcpy/memmove (memmove更好,可以防止内存地址重叠))等来进行内存数据的整块复制

解决方案四:

strcpy()是复制字符串的要以0结尾,你的结构体具体是什么结构?

解决方案五:

建议使用内存拷贝函数比较简单

解决方案六:

我觉得错误的原因是因为:
strcpy(m_save[k++],m_data);中strcpy函数当执行时其中K++并不会累加,就如int k = 2; sizoef(K++);执行完后,k的值仍然为2。
所以建议你用for循环来进行赋值,
for(int i = 0; i < 10; ++i)
{
strcpy(m_save[i],m_data);
}
应该可以的

解决方案七:

按你的需求,内存复制 memcpy 最靠谱。

时间: 2024-08-31 07:24:10

strcpy-C语言结构体之间的复制的相关文章

c语言-求助!!!关于C里scanf %s %c和结构体之间的疑惑!!!

问题描述 求助!!!关于C里scanf %s %c和结构体之间的疑惑!!! 最近在编一个学生成绩管理系统,然后就发现了一个问题..... scanf("%s %s %c ",name,stunum,&sex); 在运行时输入Xiaoming 2015000000 F 输出的stunum是2015000000, sex是F 但是把语句改成 scanf("%s %s %c ",student[0].name,student[0].stunum,&stud

php读取二进制流(C语言结构体struct数据文件)的深入解析_php技巧

尽管php是用C语言开发的,不过令我不解的是php没有提供对结构体struct的直接支持.不过php提供了pack和unpack函数,用来进行二进制数据(binary data)和php内部数据的互转: 复制代码 代码如下: string pack ( string $format [, mixed $args [, mixed $...]] )   //Pack given arguments into binary string according to format.  array unp

Go语言结构体定义和使用方法_Golang

本文实例讲述了Go语言结构体定义和使用方法.分享给大家供大家参考.具体分析如下: 一个结构体(struct)就是一个字段的集合. (而 type 定义跟其字面意思相符.) 复制代码 代码如下: package main import "fmt" type Vertex struct {     X int     Y int } func main() {     fmt.Println(Vertex{1, 2}) } 结构体字段使用点号来访问. 复制代码 代码如下: package

编程c语言-c语言结构体方面的问题

问题描述 c语言结构体方面的问题 小弟初学者在编程的时候遇到了一个问题 struct std{ char nane[4]; }; struct std student; student.name={a,c,f,g}; 这个样子的问题是不是那里搞错了....为什么会提示错误啊! 解决方案 字符串只有在声明的时候才能初始化,其它时候赋值只能一个字符一个字符的赋值,或者通过strcpy之类的函数. 改成:struct std student ={"abcf"}; 解决方案二: student

struct-关于C语言结构体指针数组的问题

问题描述 关于C语言结构体指针数组的问题 //结构体struct student{ int iNum; char cName[16]; float fChineseScore; float fMathScore; float fEnglishScore;};typedef struct student STUDENT;//输入void InputTranscript(STUDENT MyClass[] int num){ int i; printf(""请输入学生的成绩信息:n&quo

c语言-C语言结构体的指针问题。

问题描述 C语言结构体的指针问题. struct GenInfo { uint64_t (*next)(struct GenInfo * const); enum GeneratorType type; union { struct GenInfo_Constant constant; struct GenInfo_Counter counter; struct GenInfo_Discrete discrete; struct GenInfo_Exponential exponential;

struct-C语言结构体变量指针问题,求助

问题描述 C语言结构体变量指针问题,求助 #include #include #include #define N 10 typedef struct { char name[10]; double price; struct { int year;int month;int day ;}date; }STREC; int fun(STREC a,double p) { int i,j=0; double q; for(i=0; i < N ; i++,a++) { q=a->price; i

visual studio-C语言结构体在VS2013输入时候遇到的问题

问题描述 C语言结构体在VS2013输入时候遇到的问题 IDE:VS2013 OS:Windows7 源码附上: #include<windows.h> #include<stdio.h> int main() { //定义一个People类型的结构体 struct People{ char name[10];//名字 char sex[5];//性别 int age;//年龄 int Class;//班级 }me; //将me声明为People类型的结构体变量 printf(&q

c语言-关于C语言结构体指针类型的强制转换(求大神详细解答)

问题描述 关于C语言结构体指针类型的强制转换(求大神详细解答) #include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; **int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return a