c - 如何将字符串值分配给C中的二维数组?
问题描述
如何将字符串值分配给C中的二维数组?
我有一个示例代码,但它不起作用。
#include<stdio.h>
void main()
{
char f[20][20];
f[0]="abc"; //Error Happens Here
printf("%s",f[0]);
}
解决方案
这
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所指出的。
推荐阅读
- c# - 如何在两个布尔值标志之间切换?
- c - Tcl-C - 从 C 运行 Tcl Interperter 时不需要特定的包
- java - WildFly - 在域模式下创建数据源需要重新启动
- r - Rcpp 生成的 S4 类的 S4 方法似乎仍然需要 .onLoad()
- java - Last-Modified vs ETag http
- symfony - Symfony 表单:测试小部件会破坏小部件的渲染
- html - 使用 HTML 和 MathJax 渲染动态方程
- python - 颤动的 matplotlib 向量场 3d 绘图错误:“解包的值太多”
- java - 如何使用客户端/服务器 Nailgun(在 Debian Stretch 上)运行一个简单的 Java 程序?
- 3d - 如何在 glsl 中复制 Photoshop 斜面/浮雕边框效果