如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较
How to pass char type array to a function and copy 1st char array to 2nd chart array and compare it using c++?
这是我想要的:
声明大小为 15 的字符数组以存储来自用户的字符(字符串输入)值。现在执行以下任务:
- 将数组传递给函数 copy()。
- 在上面的函数中定义另一个相同大小的数组。将第一个数组的值复制到第二个数组并显示在控制台上。
- 从函数 Copy() 将两个数组传递给函数 compare()。在该函数中,比较两个数组,如果满足条件,则显示消息"相等"。
这是我的代码
#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;
}
}
上面的代码是将数组传递给函数 Copy() 并将第一个数组的值复制到第二个 char 数组,但由于传递了无效参数,代码生成异常。 由于我已经搜索了堆栈溢出,但我没有找到任何可以解决我问题的类似问题。提前谢谢。
不要使用strncpy_s
,它是非标准的。相反,请像原来一样使用strncpy
。为了使用它,您需要包含 cstring
.
#include <cstring>
mycopy()
的原型和定义是不同的。您的原型需要char
但您的定义需要char
数组。让它们都采用一个数组。以下三个中的任何一个都将工作相同:
void mycopy(char* array);
void mycopy(char array[]);
void mycopy(char array[15]);
当您在 main()
中调用 mycopy()
时,您正在尝试访问第 15 个索引处的数组并将该字符传递给函数。这是错误的,因为第 15 个索引是越界的,并且因为该函数采用指向char
数组的指针,而不是char
。您只需将指针传递给数组。
mycopy(array);
相关文章:
- 需要使用模板查找数组的第二个最小和最小值
- 为什么断点显示数组的第二个值是一个大数字?额外学分工作
- 使用嵌套函数数组是个好主意吗?
- 一个 2D 数组,并按行存储值.第一个循环用于行索引,第二个循环用于列索引
- 我正在尝试将我的 c++ 数组从第二个索引切到最后一个索引
- 第二个和第二个最终值在 C++ 中混合在二维数组中
- C++使用第二个函数获取字符数组的长度
- 链表数组(5 个队列)
- 是否有可能通过溢出 C 中的第一个元素来写入数组第二个元素
- 最多获得没有第二个变量的数组
- 代码未C++打印第二个字符数组
- 从数组中获取第二个字符串
- 为什么数组与 std::extent 第二个 imp 匹配
- 如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较
- 指向数组第一个元素的指针的地址
- 用 std::valarray 替换 POD C 样式数组是个坏主意吗?
- OpenGL:两个顶点数组 + 两个索引数组
- c++多维数组多个数据类型
- 使用C++AMP处理大型数组(65536+个元素)
- 在c++中使用MKL函数初始化数组是个好主意吗?