C语言怎样将一维字符数组存放到二维数组中?

初学C,请问怎样可以实现向字符数组a中多次输入一个字符串,每输入一次将该字符串存放到二维数组b的一个维中?例如,输入a[10]=abcdefg,将其存放到b[2][10]中的第一行,再输入a[10]=hijknlm,将其存放到b[2][10]中的第二行。

1、例如:s1[0][0]是'w'  s1[0][1]是'h'  s1[1][0]是'f'
字符型数组,每个元素是一个字符,每一行是一个字符串
比如要打印while,就打印s1数组的第一行。

2、例程:

#include<stdio.h>
void main()
{
    int i;
    char a[10];
    char b[2][10];
    for (i = 0; i != 2; ++i)
    {
        scanf("%s", a);
        strcpy(b[i], a);
    }
    for (i = 0; i != 2; ++i)
    {
        printf("%s\n", b[i]);
    }
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-24
楼主是这个意思么?输入两个字符串到a,将它复制到b里面
#include<stdio.h>
void main()
{
int i;
char a[10];
char b[2][10];
for (i = 0; i != 2; ++i)
{
scanf("%s", a);
strcpy(b[i], a);
}
for (i = 0; i != 2; ++i)
{
printf("%s\n", b[i]);
}
}本回答被提问者采纳
第2个回答  2011-11-22
给你一个例子吧,大体差不多
#include<stdio.h>
int main()
{
int i,j,a[50][50],k,sum=1;
printf("你想输入几阶方阵\n");
scanf("%d",&k);
printf("输入方阵的数,以空格键隔开\n");
for(i=0;i<k;i++)
for(j=0;j<k;j++)
scanf("%d",&a[i][j]);
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
printf("%8d",a[i][j]);
}
printf("\n");
}
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
if(i==j)
sum=sum*a[i][j];
}
printf("对角线数乘积为%d\n",sum);
}

C语言怎样将一维字符数组存放到二维数组中?
1、例如:s1[0][0]是'w' s1[0][1]是'h' s1[1][0]是'f' 字符型数组,每个元素是一个字符,每一行是一个字符串。比如要打印while,就打印s1数组的第一行。2、例程:include<stdio.h>void main(){ int i; char a[10]; char b[2][10]; for (i = 0; i != ...

C语言一维数组转二维数组
1、我们先是定义一个二级指针和行列变量【int **array,row,column;】。2、然后我们编写输入行列的语句。3、为其开辟一个一个一维装着一维数组的数组。4、接下来我们使用【array[i]=(int *)malloc(sizeof(int)*column);】为数组再次产生一个新的装着数组的数组。5、然后我们就可以为其赋值并输出。

C语言如何将一个字符串中的单词分别存到另一个二维数组?
length=strlen(line);\/*如果当前字符是字母那么通过判断前一个字符是不是字母来判断当前单词的输入是否断开*\/ prvIsAlpha=0;for(i=0;i<length;++i)if(isalpha(line[i])){ tmp[0]=line[i];if(prvIsAlpha) strcat(word[totalNumber-1],tmp);else word[totalNumber++][0]=line[i];prvIsAlpha...

C语言中,怎样将一个一维数组中的数,赋给一个二维数组??
1 按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2 当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。如一维数组为a,...

C语言 我有一个tsv文件 我如何把这些单词放到二维数组里?
include#include#include int main(){ FILE *fp; int i = 0; double data[100][5]; char str[100]; fp = fopen("F:\/112.txt", "r"); \/\/打开文件 if (!fp) return -1; while (!feof(fp)) \/\/ 读取数据 { fgets(str, 100, fp); strtok(st...

C语言把一维数组赋值给二维数组;
在C语言中,字符串不能像数字一样可通过赋值符进行赋值。如:定义int a=233,b;后,使用b=a;给b赋值是可以的;但是char a[20]="abc",b[20];后,不能使用b=a;给a赋值。常用的办法是使用strcpy(b,a);函数。你所举的例子中,aa[0]=p[0];这里是行不通的, 可以考虑用strcpy(aa[0],p...

C语言中如何将一维数组转成二维数组?例如一维数组a[i],b[j],将其相 ...
楼主你好~用循环赋值即可~for (k = 0; k < 3; k++){ c[k][0] = a[k];c[k][1] = b[k];}

跪求C语言中怎样把很多字符串存入二维数组中,并用指针输出,急用~谢 ...
给你举个例子,这里str就是一个二维数组,我手动输入10个字符串存入该数组,然后用该二维数组的行指针输出#include<stdio.h>#include<string.h>void main(){ char str[10][20]; int i; for(i=0;i<10;i++) gets(*(str+i)); for(i=0;i<10;i++) puts(*(str+i));} 本回答由提问者推荐 举报...

C语言把一些字符串存入一个二维数组(在线等)
猜测:你的目的是读文件中的多行出来,然后分行存储二维数组,最后按每行再输出出来;解决方法:如果是读多行,正常情况下应该是每行每行往外读,而不是一下子全读出来。用一个for循环,每次调fgets函数,只读一行。读一行存一行。然后再for循环往外cout。fgets每次读一行,fscanf则要自己定规则,你很...

C语言一维数组转二维数组的方法是什么?
{ int b[3][3]={0};int i=0;int j=0;while(*a){ if(*a == '\\n'){ i++;j=0;} b[i][j++]=*a-'0';} }。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的...

相似回答