C++中如何将一个数组中的元素值赋给另一个数组

将字符数组str1中下标为单号的元素值赋给另一个字符数组str2,并打印输出str1和str2。
其中str1中保存的字符串可以由用户输入,假设不超过30个字符

楼主是刚刚学C++的,请尽量简单些!
我是这样写的
#include<iostream.h>
void main()
{
char str1[31], str2[16];
int x=0;
int i=0,j=1;
do{
cin>>str1[x];
x++;
}while(x<=29);
str1[30]='\0';
for(i,j;j<30;i++)
{
str2[i]=str1[j];
j+=2;
}
str2[i]='\0';
cout<<str1<<endl;
cout<<str2<<endl;
}

我想问一下,如果我想输入不足30个字符的字符串如何跳出第一个循环?

有两种方法可以实现。

为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。
int a[4] = {1,2,3,4}, b[4];

1、 通过数组遍历,逐个赋值。
定义循环变量int i;
for(i = 0; i < 4; i ++)
b[i] = a[i];
该程序功能为遍历数组a,逐个赋值到数组b对应元素中。

2、 借助内存复制函数memcpy,整体赋值。
void *memcpy(void *dst, void *src, size_t size);
这个函数的功能为将src上,大小为size字节的数据赋值到dst上。
调用该函数时需要引用头文件cstring,即
#include <cstring>
赋值数组的代码为
memcpy(b,a,sizeof(a));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-02
用循环结构,不能直接出现像a=b的语句。另外,如果是char数组,可以直接用strcpy()函数,C++头文件<string>
第2个回答  2012-11-17
用while(cin>>n);把输入的n用数组保存就好,想输多少都行,只要不超过数组的范围
第3个回答  2012-11-17
cahr str1[30],str2[30];
for(i=0;i<strlen(str1);i++)
if(i%2==0)
str2[i]=str1[i];
注意定义char型,最基本的。
也可以定义指针。追问

我是这样写的
#include
void main()
{
char str1[31], str2[16];
int x=0;
int i=0,j=1;
do{
cin>>str1[x];
x++;
}while(x<=29);
str1[30]='\0';
for(i,j;j<30;i++)
{
str2[i]=str1[j];
j+=2;
}
str2[i]='\0';
cout<<str1<<endl;
cout<<str2<<endl;
}

我想问一下,如果我想输入不足30个字符的字符串如何跳出第一个循环?

本回答被提问者采纳
第4个回答  2023-05-05
用遍历数组,判断每一项是否符合条件,符合就赋值给另一个数组
相似回答