C++ 如何将字符类型数组传递给函数,并将第一个字符数组复制到第二个图表数组,并使用c++;?

C++ 如何将字符类型数组传递给函数,并将第一个字符数组复制到第二个图表数组,并使用c++;?,c++,arrays,function,char,C++,Arrays,Function,Char,这是我想要的: 声明大小为15的字符数组以存储用户提供的字符(字符串输入)值。现在执行以下任务: 将数组传递给函数copy() 在上述函数中定义另一个相同大小的数组。将第一个数组的值复制到第二个数组并显示在控制台上 从函数Copy()将两个数组传递给函数compare()。在该函数中,比较两个数组,如果满足条件,则显示消息“Equal” 这是我的代码 #include "stdafx.h" #include <iostream> using namespace std; #inc

这是我想要的:
声明大小为15的字符数组以存储用户提供的字符(字符串输入)值。现在执行以下任务:

  • 将数组传递给函数copy()
  • 在上述函数中定义另一个相同大小的数组。将第一个数组的值复制到第二个数组并显示在控制台上
  • 从函数Copy()将两个数组传递给函数compare()。在该函数中,比较两个数组,如果满足条件,则显示消息“Equal”
这是我的代码

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;

void mycopy(char array);
int main(){
//Using Loop to input an Array from user

char array[15];
int i;
cout << "Please Enter your 15 characters" << endl;
cout << "**************************************************" << endl;
for (i = 0; i < 15; i++)
{
    cin >> array[i];
}

// output each array element's value
cout << "Please Enter your 15 characters" << endl;
cout << "**************************************************" << endl;
cout << "Element" << setw(13) << "Value" << endl;
for (int j = 0; j < 15; j++) {
    cout << setw(7) << j << setw(13) << array[j] << endl;
}

mycopy(array[15]);

return 0;
}

void mycopy(char array[15]) {

char array1[15];
strncpy_s(array1, array, 15);
cout << "The output of the copied Array" << endl;
cout << "**************************************************" << endl;
cout << "Element" << setw(13) << "Value" << endl;
for (int j = 0; j < 15; j++) {
    cout << setw(7) << j << setw(13) << array1[j] << endl;
}
#包括“stdafx.h”
#包括
使用名称空间std;
#包括
使用std::setw;
void-mycopy(字符数组);
int main(){
//使用循环从用户输入数组
字符数组[15];
int i;

不能不要使用
strncpy\u
,它是非标准的。相反,要像最初一样使用
strncpy
。要使用它,需要包括
cstring

#include <cstring>
main()中调用
mycopy()时
您正试图访问第15个索引处的数组,并将该字符传递给函数。这是错误的,因为第15个索引超出了范围,并且函数使用指向
char
数组的指针,而不是
char
。只需将指针传递给数组即可

mycopy(array);

您忘记在
mycopy()
的原型后面加分号,它位于
main()
void mycopy(char*array)之上
在原型中,您忘记了
*
@马克谢谢,但现在它给了我其他错误我应该现在更新代码并询问新错误吗?当您这样做时,您忘记了包含cstring以获取
strncpy
,并且
mycopy
的大括号计数不均匀。谢谢@Mark,所以在我的Visual Studio 2015中出现了问题,马克呢上一个任务?标记上一个任务如何?在其他地方有该问题的答案,例如。您也可以使用
strcmp()
,但您需要确保字符串以null结尾。但是亲爱的@Mark i在通过函数执行时面临问题,因为被要求从copy fun()传递两个数组
mycopy(array);