跳转至

二维字符数组

字符数组 char s[N][N];

二维字符数组的输入输出

char s[N][N];
int n, m; // n行m列

int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) cin >> s[i];

    for (int i = 0; i < n; i++) cout << s[i] << endl;

    return 0;
}

我们把每一行当成一个字符串读入,而不是一个字符一个字符的读入。

这样可以有效避免,读入行末的多余空格,导致簒位置。

二维字符数组的访问

s[0][0] 访问第0行第0列的字符
s[i][j] 访问第i行第j列的字符

二维字符数组的遍历

for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) 
        if (s[i][j] == '@') cout << 1;
        else cout << cout << 0;
    cout << endl;
}

string 数组 string s[N];

每一行定义成一个 string,这样就可以表示二维字符数组了。

输入输出、访问、遍历的操作,同上。

字典序排序

在英文字典中,排列单词的顺序是先按照第一个字母以升序排列(即a、b、c……z 的顺序);如果第一个字母一样,那就比较第二个、第三个乃至后面的字母。如果比到最后两个单词不一样长(比如,sigh 和 sight),那么把短者排在前。

image-2025062313535062 0