c++ - 如何将结构的char数组复制到结构的另一个char数组中?
问题描述
#include <iostream>
using namespace std;
struct stud
{
char name[10];
int id;
};
int input(stud a[], int size)
{
for(int i=1; i<=size; i++)
{
cout<<"name = ";
cin>>a[i].name;
cout<<"id = ";
cin>>a[i].id;
}
cout<<endl;
return 0;
}
int output(stud a[], int size)
{
for(int i=1; i<=size; i++)
{
cout<<"name = "<<a[i].name<<" ";
cout<<"id = "<<a[i].id<<" ";
}
cout<<endl;
return 0;
}
int copy(stud a[], stud x[], int size)
{
for(int i=1; i<=size; i++)
{
x[i].name=a[i].name;
x[i].id=a[i].id;
}
output(x,size);
cout<<endl;
return 0;
}
int main()
{
struct stud s[3], x[3];
input(s,3);
output(s,3);
copy(s,x,3);
return 0;
}
在这个程序中,函数 copyx[i].name =a[i].name;
中的语句不是将内容从一个结构对象复制到另一个结构对象。我试图将此语句放入 for 循环中,for(int j=1;j<=10;j++) x[i].name[j] =a[i].name[j];
但仍然无法正常工作。请建议应该改变什么或一些替代方案。我会非常感谢你的。
问候,奥马尔
解决方案
Evrey 单个循环是错误的,因为在 C++ 中,数组从零开始。所以不是
for(int i=1; i<=size; i++)
反而
for(int i=0; i<size; i++)
您不能通过写入来复制数组a = b;
。由于您的数组实际上是字符串,因此有一个内置函数strcpy
可以复制字符串。
strcpy(x[i].name, a[i].name);
推荐阅读
- typescript - D3.js JSON 数据转折线图
- spring-micrometer - URI 模板中以微米为单位的度量。一些路径变量需要从 URL 替换
- stored-procedures - 如何从 power bi 中的存储过程中导入数据?
- java - 如何在 Firebase 数据库(Android)中计算儿童数量
- oracle - 在 parfile 中使用条件子句(查询)导入 - Oracle12c
- twitter - 如何嵌入由哈希标签过滤的 Twitter 时间线
- r - 在 R 中查找和替换文本
- angular - 如何通过Angular模板中的三元运算符运行函数?
- scipy - 安装 MXNet 框架。在 Raspberry Pi 上 - SciPy 挂起
- javascript - 我在哪里添加从零开始(chart.js)