字符串矩阵输入输出

时间:2017-03-03 09:43:57

标签: c string matrix

我想用C编程语言编写一个字符串矩阵 这是我的代码

void main()
{
    char Data[10][3][20];
    int i=0;
    int j=0;
    for (i=0;i<10;i++)
    {
        for (j=0;j<3;j++)
        {
            Data[i][j]="aa";
        }
    }
    for (i=0;i<10;i++)
    {
        for (j=0;j<3;j++)
        {

            printf("%s",Data[i][j]);
        }
    }
    printf("Done");
    scanf("%d",&i);
}

我遇到的错误是:assignment to expression with array type 请向我解释一下我做错了什么,因为这是我试图在原始代码中使用的原型,即建立&#34;用户名,密码,等级&#34;

的数据库

谢谢你。

2 个答案:

答案 0 :(得分:1)

Data[i][j]是一个数组。您无法分配给阵列,只能复制到该阵列。使用strcpy()。更多详情请见http://www.cplusplus.com/reference/cstring/strcpy/

#include <stdio.h>    
int main() {
    char Data[10][3][20];
    int i=0;
    int j=0;
    for (i=0;i<10;i++){
        for (j=0;j<3;j++){
            strcpy(Data[i][j], "aa"); //use strcpy for copy values 
        }
    }
    for (i=0;i<10;i++){
        for (j=0;j<3;j++) {    
            printf("%s ",Data[i][j]);
        }
        printf("\n");
    }
    printf("Done");
    scanf("%d",&i); //why this scanf here ??
    return 0;
}

答案 1 :(得分:0)

您正在创建一个char数组,并且无法为其指定(指针)。这就是您收到错误assignment to expression with array type

的原因

您可以将字符串复制到数组元素中。尝试在代码中使用strcpy代替以下分配:

Data[i][j]="aa";