C中的二维字符数组意外输出
我有一段将字符串存储在二维字符数组中的代码 二维字符数组。提供12位字符串,如>“COMEHOMEARUN”。它应该将其存储为C中的二维字符数组意外输出,c,arrays,char,2d,C,Arrays,Char,2d,我有一段将字符串存储在二维字符数组中的代码 二维字符数组。提供12位字符串,如>“COMEHOMEARUN”。它应该将其存储为 C O M E H O M E A R U N 但是我得到的输出是 C O M E H M M E A R U N…即[0]6]处的值自动获取[1][0]的值 这是密码 #include<stdio.h> #include<conio.h> void main() { char string[20]; char aray[1][5
C O M E H O
M E A R U N
但是我得到的输出是
C O M E H M
M E A R U N…即[0]6]处的值自动获取[1][0]的值 这是密码
#include<stdio.h>
#include<conio.h>
void main()
{
char string[20];
char aray[1][5];
int i,j,k=0;
gets(string);
//storing the individual characters in the string in the form of 2x6 char array
for(i=0;i<=1;i++)
{
for(j=0;j<=5;j++)
{
aray[i][j]=string[k];
k++;
}
}
//displaying the array Generated
for(i=0;i<=1;i++)
{
for(j=0;j<=5;j++)
{
printf("%c ", aray[i][j]);
}
printf("\n");
}
getch();
}
#包括
#包括
void main()
{
字符串[20];
chararay[1][5];
int i,j,k=0;
获取(字符串);
//以2x6字符数组的形式存储字符串中的单个字符
对于(i=0;i您可以尝试将chararay[1][5]
更改为chararay[2][6]
您可以尝试将chararay[1][5]
更改为chararay[2][6]
在类似char array[N][M]
的C数组声明中,N
和M
值不是最高有效索引;它们的意思是“值的数量”
那么你的声明呢
char aray[1][5];
定义的数组大小为1x5,而不是您想要的2x6
你需要:
char aray[2][6];
当然,实际的索引是基于0的,因此对于chararay[2][6]
,“last”元素位于aray[1][5]
,在类似char array[N][M]
的C数组声明中,N
和M
值是而不是最高的有效索引;它们表示“值的数量”
那么你的声明呢
char aray[1][5];
定义的数组大小为1x5,而不是您想要的2x6
你需要:
char aray[2][6];
但当然,实际的索引是基于0的,因此对于chararay[2][6]
,最后一个“元素位于aray[1][5]
,您的索引是不正确的
当你声明任何字符数组时,你必须给出足够的长度。在你的代码中,你给出了维度1,但它需要2
将数组声明为:
char array[2][6];
那就行了。您的索引不正确
当你声明任何字符数组时,你必须给出足够的长度。在你的代码中,你给出了维度1,但它需要2
将数组声明为:
char array[2][6];
那就行了