我是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"
...
...
%s
用于打印字符串。单个字符不是字符串,而是char
,您可以使用%c
打印它。
问题出在行中