Vì sao dùng một biến mảng 2 chiều kiểu char để so sánh với một biến string?

Mọi người có thể cho em hỏi vì sao ở chương trình dưới đây lại dùng biến mảng hai chiều kiểu char để so sánh không?

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

void xuli()
{
    char a[10][100];
    for(int i=0; i<10; i++)
        cin >> a[i];

    int h, d=0;
    cin >> h;
    string m, n;
    for(int i=0; i<h; i++)
    {
        cin >> n;
        m=a[int(n[0]-48)];
        for(int j=1; j<n.size();j++)
        {
            if(m < a[int(n[j])-48])
                m=a[int(n[j])-48];
        }
        cout << m << endl;
    }
}

Tại người viết “thích như thế”.
Chứ mảng 2 chiều char[10][100] cũng tương đương với mảng 1 chiều string a[10] thôi. Cách viết này là đang lẫn lộn giữa C và C++, chính xác là string* a = new string[10], hoặc dùng vector<string>.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?