首页 > 解决方案 > 如何将字符串值分配给C中的二维数组?

问题描述

如何将字符串值分配给C中的二维数组?

我有一个示例代码,但它不起作用。

#include<stdio.h>

void main()
{
    char f[20][20];

    f[0]="abc"; //Error Happens Here

    printf("%s",f[0]);
}

标签: carraysstring

解决方案


f[0]="abc"; 

和char 数组f[0]一样是错误的,通过这样做,您试图更改数组的基地址,这是不可能的。您可以通过考虑一维字符数组的示例来简单地理解这一点,例如f[0]="abc";f[0]

char arr[10] = "hello";

这里的arr意思是数组的基地址&一个不能改变它的常量指针。现在如果你这样做

arr = "bye"

在这里,您试图指向arr其他地址(bye地址)而不是更早的基地址。

正确的方法是

strcpy(f[0],"abc"); 

最好使用它来strncpy()代替strcpy()@Eric here所指出的。


推荐阅读