c++ - 如何反转char数组中的元素?C++
问题描述
我是编程新手,我正在尝试反转 char 数组的内容。但是我的输出中的第一个元素似乎得到了一个垃圾值。有人可以告诉我我做错了什么吗?
int main() {
int size = 0;
char arr[100];
cout << "Enter how many elements are added to array" << endl;
cin >> size;
cout << "Enter " << size << " elements " << endl;
for(int i = 0; i < size; i++)
{
cin >> arr[i];
}
cout << "Input: [ " ;
for (int i = 0; i < size; ++i) {
cout << arr[i] << " ";
}
cout << "]" << endl;
cout << "Output: [";
for(int j = size; j >= 0; j--)
{
cout << arr[j] << " ";
}
cout << "]" << endl;
}
解决方案
问题是您正在打印一个从未初始化的元素:
for(int j = size; j >= 0; j--)
{
cout << arr[j] << " ";
}
例如,如果您输入了 10 个值,这些值的索引是 0 到 9。但是您正在访问元素 10,该元素从未被初始化,因此您会得到未定义的行为。你需要这个:
for (int j = size - 1; j >= 0; j--)
{
cout << arr[j] << " ";
}
推荐阅读
- javascript - 反应自动完成下拉位置按下其他输入元素
- javascript - ChartJS 删除图表中的数字
- android - 如何删除特定符号之前的字符
- sql-server - 在 SQL Server 中使用一行中的子标签查询 XML
- javascript - Moment js以分钟为单位比较差异
- python - Pandas groupby 无论符号如何都能获得最大值
- loopback4 - Loopback4 使用自签名证书调用 HTTPS/REST 服务
- reactjs - 将从用户文件上传的 csv 数据添加到 django 模型
- r - 使用 R 在 xml 中编辑或添加文本
- jquery - ajax成功里面的访问值