c - 有没有直接的方法来寻址 2D char 数组并在 C 中存储字符串

标签 c arrays string

我想知道是否有直接的方法来寻址二维字符数组并在其上存储字符串。

而且我知道,通过使用 malloc,我可以动态地将内存分配给字符串,例如 char * names[number] 我可以 malloc (char *)malloc(50*sizeof( char)) 并完成它。

而且我还知道,通过使用 for 循环并分配每个元素,您可以实现相同的效果。 我通过这个类似的问题找到了它here .

但我的情况是,有没有办法使用数组名称和索引直接存储字符串。它应该看起来像这样。这里不是 popper 代码,我只是想展示它应该是什么样子(来 self 上面提到的链接)

char arrayOfWords[NUMBER_OF_WORDS][MAX_SIZE_OF_WORD];

int i;`
for (i=0; i<NUMBER_OF_WORDS; i++) {
    arrayOfWords[i] = "laksith"; //here I need to use a way like arrayOfWords+1 etc.
}

我想你可能已经明白我在说什么了。

最佳答案

当然可以。但在这种情况下,您需要使用 strcpy 而不是赋值运算符:

for (i=0; i<NUMBER_OF_WORDS; i++) {
    strcpy(arrayOfWords[i], "laksith"); //here I need to use a way like arrayOfWords+1 etc.
}

UPD: 正如 @PaulR 在上面的评论中指出的那样,strncpy是一个更好的选择。但首先您需要阅读此链接中的注释(如何正确处理丢失的空字节)。

关于c - 有没有直接的方法来寻址 2D char 数组并在 C 中存储字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558394/

相关文章:

c - 遇到永远循环的问题

python - 从散点图到二维数组

arrays - scala如何使用另一个不同类型数组的长度创建大小数组

arrays - Lua多维表创建

java - 输入字符串压缩为字符串

java - Intellij 模板生成器语法

linux - 文件到字符串和字符串到 bash 中的文件

c - 如何在 C 中模拟 OO 风格的多态性?

c - 无论 C 中的名称如何,都打开一个 .dat 文件

c - 正在跳过获取标准输入的 Getline