Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chuyển chuỗi thành lưới ma trận vuông ký tự trong C++


Chuyển chuỗi thành ma trận vuông (grid) ký tự với số hàng và cột xác định.

Chương trình C++

#include <bits/stdc++.h> 
using namespace std; 

void convert_grid(string str) {
    int l = str.length();
    int k = 0, row, column;
    row = floor(sqrt(l));
    column = ceil(sqrt(l));
    if (row * column < l)
        row = column;
    
    char s[row][column];
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < column; j++) {
            s[i][j] = str[k];
            k++;
        }
    }
    
    // In lưới
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < column; j++) {
            if (s[i][j] == '\0') break;
            cout << s[i][j];
        }
        cout << endl;
    }
}

int main() {
    string str = "TUTORIALSPOINT";
    convert_grid(str);
    return 0;
}

Kết quả

TUTO
RIAL
SPOI
NT

Giải thích

  • Chuỗi "TUTORIALSPOINT" độ dài 14
  • sqrt(14) ≈ 3.74 → row=3, col=4
  • 3×4=12 < 14 → row=4
  • Ma trận 4×4, điền hàng ngang, in ra 4 hàng