This question already has answers here:
How to correctly assign a new string value?
                                
                                    (3个答案)
                                
                        
                                2年前关闭。
            
                    
我想用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
请向我解释做错了什么,因为这是我尝试在原始代码中使用的原型,该原型用于创建“用户名,密码,级别”数据库

先感谢您。

最佳答案

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;
}

07-24 13:31