c++ - 在特定位置插入字符
问题描述
所以我必须编写一个程序,在特定位置的数组中添加一个字符,以获取用户的输入。EG,数组是{'A','B','R','L','O','M','C'},所以在索引2处插入“M”后,它应该变成{' A','B','M','R','L','O','M','C'}。我的问题是我的代码覆盖了索引 2 处的值,因此在此过程中丢失了它。
这是代码:
char array[20], insert, temp;
int size = 10, index, count = 0;
cout << "Enter characters : ";
cin >> array;
cout << "Enter a character you want to insert : ";
cin >> insert;
cout << "Enter index you want to insert in : ";
cin >> index;
for (int i = index; array[i] != '\0'; i++)
{
temp = array[index + 1];
array[index] = insert;
}
for (int i = 0; array[i] != '\0'; i++)
{
cout << array[i] << " ";
}
解决方案
你不应该使用 C 字符串。但更重要的是,您不应将 C 字符串与 std::cin 一起使用,因为您无法限制字符数,并且您的程序可能会导致缓冲区溢出。
您应该使用像std::string这样的动态容器。大多数容器提供类似std::string::insert的方法来在特定位置插入元素。
了解你的工具(算法),不要重新发明轮子。
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::size_t;
using std::string;
int main()
{
cout << "Enter characters : ";
string array;
cin >> array;
cout << "Enter a character you want to insert : ";
string insert;
cin >> insert;
cout << "Enter index you want to insert in : ";
size_t index;
cin >> index;
array.insert(index, insert);
for (const auto &c : array) {
cout << c << " ";
}
}
推荐阅读
- python - ValueError:使用序列设置数组元素。Python
- python - 如何防止 django 运行一个命令的多个实例?
- reactjs - Material UI:嵌套菜单项无法显示
- javascript - CSS3 内容中的 HTML 值
- php - BelongsTo 在 Laravel
- javascript - 如何在字典末尾附加键值对?
- django - 在 Q 搜索中包含 Django-Tagulous 标签
- rabbitmq - 用于聊天频道组播的 RabbitMQ
- python - 在函数中使用带有可变数量参数的 Python lmfit
- python - 将 int8 数组解码为 utf-8 字符串