You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中从字符串输入创建3x3二维vector并打印游戏板

从输入字符串生成3x3游戏板并打印的解决方案

字符串转二维vector的核心逻辑

3x3游戏板需要恰好9个字符的输入字符串,转换时按行优先顺序填充:

  • 先创建一个3行3列的vector<vector<char>>容器
  • 遍历字符串的每个字符,第i个字符(从0开始计数)对应的行号是i / 3(整数除法自动向下取整),列号是i % 3,直接把字符放到对应位置即可

修正打印循环的错误

之前的打印循环条件出错,大概率是循环边界设置不当。正确的打印方式是:

  • 外层循环遍历游戏板的每一行
  • 内层循环遍历当前行的每个元素,打印后加空格分隔
  • 每行元素打印完后换行,保证游戏板的3x3格式

完整可运行代码

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
    string input;
    cout << "请输入9个字符的游戏板字符串:";
    cin >> input;

    // 输入合法性检查,避免越界问题
    if (input.length() != 9) {
        cout << "错误:必须输入恰好9个字符!" << endl;
        return 1;
    }

    // 初始化3x3二维vector并填充内容
    vector<vector<char>> board(3, vector<char>(3));
    for (int idx = 0; idx < 9; ++idx) {
        int row = idx / 3;
        int col = idx % 3;
        board[row][col] = input[idx];
    }

    // 打印游戏板
    cout << "\n生成的3x3游戏板:\n";
    for (int row = 0; row < 3; ++row) {
        for (int col = 0; col < 3; ++col) {
            cout << board[row][col] << " ";
        }
        cout << endl;
    }

    return 0;
}

关键细节说明

  • 输入校验:必须检查字符串长度是否为9,否则填充时会出现索引越界的运行时错误
  • 填充逻辑:i/3和i%3的组合是行优先填充固定列数二维数组的通用技巧,逻辑简洁且不易出错
  • 打印格式:每行结束后换行、元素间加空格,能让游戏板的3x3结构更直观清晰

内容的提问来源于stack exchange,提问作者c_plusplus_beginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:39:05