C语言中二维字符数组应该怎样赋值?

#include<stdio.h>
int main()
{
char seq1[100],seq2[100],result[2][100];
int i;
printf("please put a sequence:\n");
scanf("%s",seq1);
printf("please put another sequence:\n");
scanf("%s",seq2);
result[2][0]={"seq1[0]","seq2[0]"};//我想把result数组中的第一列分别换成seq1,seq2中的第一个字符 ,该怎么写?求帮忙~
printf("%s",result);
return 0;
}
PS:result是一个二维字符数组,二位字符数组应该怎样表示呢?能赋值吗?

二维数组赋值的一般形式是:dataType arrayName[length1][length2]。result二维字符数组可以这样赋值,result[0][0]=seq1[0] ;result[1][0]=seq2[0]。

dataType arrayName[length1][length2],其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。

例如:int a[3][4],定义了一个3行4列的数组,共有3×4=12个元素,数组名为a,即:

a[0][0], a[0][1], a[0][2], a[0][3]

a[1][0], a[1][1], a[1][2], a[1][3]

a[2][0], a[2][1], a[2][2], a[2][3]

在二维数组中,要定位一个元素,必须给出一维下标和二维下标,就像在一个平面中确定一个点,要知道x坐标和y坐标。例如,a[3][4] 表示a数组第3行第4列的元素。

扩展资料:

二维数组的地址计算

有二维数组A[m][n],设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节

参考资料来源:百度百科——二维数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-20
二维字符串赋值一般有两种方法:
1、初始化时直接赋值,例如char s[3][]={"1234","xyz","abd"};
2、拷贝赋值,例如char s[3][10]; strcpy(s[0],"123")。
第2个回答  推荐于2017-09-11
#include<stdio.h>
int main()
{
char seq1[100],seq2[100],result[2][100];
int i;
printf("please put a sequence:\n");
scanf("%s",seq1);
printf("please put another sequence:\n");
scanf("%s",seq2);
result[0][0]=seq1[0] ;
result[1][0]=seq2[0]; //单字符赋值

printf("%c\n",result[0][0]);
printf("%c\n",result[1][0]); //按字符输出
return 0;
}本回答被提问者采纳
第3个回答  2012-12-09
char stack_array[][]这个必须要至少指定一维,否则程序不知道如何定位你的数组元素,会报错:
改成如下:char stack_array[][30] //根据你的程序来
第4个回答  2012-12-09
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
如果不知道怎么用再问