如何正确访问字符串数组的各个字符?

问题描述 投票:0回答:2

我是c的新手,我还不太了解数组结构。在过去的一个小时里,我一直在努力寻找一种方法来获取数组中第k个字符串的第n个字符,但我仍然不明白。我不知道为什么当我只想显示第n个字符时,为什么它会显示除第n个字符以外的所有内容。

我检查了How do I access an individual character from an array of strings in c? ,但仍然无法正常工作。

char ch[3][10] = {"Str 1", "Str 2", "Str 3"};
char a[10][10];    
for (int i = 0; i < 3; i++)
{
    strcpy(a[i], ch[i]);
    printf("a[%d]: \"%s\"\n", i, &a[i]);
    for (int j = 0; j < 5; j++)
        printf("a[%d][%d]: \"%s\"\n", i, j, &a[i][j]);
    }

输出是什么(n个字符+超出的所有内容:]

a[0]: "Str 1"
a[0][0]: "Str 1"
a[0][1]: "tr 1"
a[0][2]: "r 1"
a[0][3]: " 1"
a[0][4]: "1"
a[1]: "Str 2"
a[1][0]: "Str 2"
a[1][1]: "tr 2"
a[1][2]: "r 2"
a[1][3]: " 2"
a[1][4]: "2"
a[2]: "Str 3"
a[2][0]: "Str 3"
a[2][1]: "tr 3"
a[2][2]: "r 3"
a[2][3]: " 3"
a[2][4]: "3"

我希望输出为(第n个字符):

a[0][0]: "S"
a[0][1]: "t"
a[0][2]: "r"
a[0][3]: " "
a[0][4]: "1"
...
...
c multidimensional-array
2个回答
1
投票

%s用于打印字符串。单个字符不是字符串,而是char,您可以使用%c打印它。


0
投票

问题出在行中

© www.soinside.com 2019 - 2024. All rights reserved.