创建 2D 数组并在每个数据槽中填充不同字符的最简单方法是什么?
What's the easiest way to create a 2d-array and fill in different characters in each data slot?
我的目标是使用2d数组创建一个50x50的"网格",并通过在网格中填充字符(如"^"answers"#")在不同位置打印不同的形状,如三角形、正方形和矩形,类似于以下内容:
***** ^
***** ^ ^
***** ^ ^ ^
***** ^ ^ ^ ^
我目前的方法是使用嵌套for循环来设置网格,创建边界,并用"填充中间空间:
for (r = 0; r < grid_h; r++) {
for (c = 0; c < grid_w; c++) {
grid[r][c] = ' ';
grid[r][0] = '*';
grid[r][grid_w - 1] = '*';
grid[0][c] = '*';
grid[grid_h - 1][c] = '*';
我不确定以上是否是创建我所谓的"网格"的最快/正确的方法,周围有"*"(或类似绘画区域的东西)
无论如何,我最大的问题是:在网格中填充字符最简单的方法是什么?例如,如果我想打印一个正方形,从网格[1][1]作为正方形的左上角,到网格[4][4]作为正方形的右下角,我应该如何以正确的方式打印?非常感谢。
这是最优雅的方式,可能也是最快的:)
char str[3][6] = {
" ^ ",
" ^^^ ",
"^^^^^"
};
第二个数字必须考虑到每个字符串末尾的null终止符。它的比例不好,因为它需要你手动填充。但是结果可以让你马上看到,这很好。
如果你想以编程的方式完成它,而不是像我那样手工编写,你有两个选择:
- 检查你是否在for循环内的矩形内
- 使用填充矩形的新for循环:
|
for( int x = 1; x < 5; x++ ){
for( int y = 1; y < 5; y++ ){
grid[y][x] = 'R';
}
}
相关文章:
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 请求最简单的 OpenMP 目标 GPU 示例
- 将时间戳打印到流的最简单方法
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- C++20 个模块在 clang (Windows):在最简单的示例中键入信息错误
- 对多个(可能)重叠范围进行分区的最简单算法
- 在 cpp 中最简单的图形实现
- boost::variant - 对变体应用算术的最简单方法
- 多线程 gtkmm 应用程序最简单的示例
- 创建可以遍历 std::map 值的通用模板迭代器的最简单方法是什么?
- 在C++中将算术类型转换为 std::array 的最简单方法<uint8_t>
- 标准库容器最简单、性能差的哈希类是什么?
- C++-将ASCII字符数组中可能的数值转换为字符的最简单方法
- 如何制作一个只包含字符的简单加载屏幕
- 无法获得最简单的JNI足以在Windows 10上运行
- 从 txt 文件中读取数据的最简单方法
- 根据浮点符号对浮点进行舍入的最简单方法是什么
- 创建 2D 数组并在每个数据槽中填充不同字符的最简单方法是什么?