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);