c - 如何在c中将字符串从一维数组复制到二维数组?

标签 c arrays string

我试图将相同的字符从一维字符数组复制到二维数组的每一行,但我无法输出任何内容。

预期输出:

            abcd  
            abcd  
            abcd  
            abcd   

我得到的输出:

process returned -1073741819(0xC0000005) execution time : 4.583s  
press any key to continue  

代码如下:

#include <stdio.h>
#include <conio.h>
#include <string.h>

void main()
{
    int i,j;
    char v[4]={'a','b','c','d'};
    char answers[10][10];
    for(i=0;i<4;i++){
        for(j=0;j<4;j++){
            strcpy(answers[i][j],v[i]);
        }
    }
    for(i=0;i<4;i++){
        printf("\n%s",answers[i]);
    }
    getch();
}

最佳答案

C 中的字符串以 null 结尾。试试这个:

char v[5] = { 'a','b','c','d', '\0' };

这里也有

for(i=0;i<4;i++){
    for(j=0;j<4;j++){
        strcpy(answers[i][j],v[i]);
    }
}

不起作用,因为您正在尝试复制字符,但此函数需要字符串。您的编译器应该发出有关不兼容类型的警告。将此嵌套循环替换为:

for (i = 0; i < 4; i++) {
    strcpy(answers[i], v);
}

关于c - 如何在c中将字符串从一维数组复制到二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58855192/

相关文章:

客户端端口号在服务器 TCP/IP 套接字中显示错误 C 语言编程

C - 如何按子字符串拆分字符串

javascript - 追加到由 ul 制成的数组

这可能是对齐内存问题吗?

c - 与 C 中的 NULL 相比的非空参数

c# - 无法将类型为 'System.Object[]' 的对象转换为 'MyObject[]',这是怎么回事?

arrays - 做一个 O(1) 操作,O(n) 次还是 O(1)?

sql - MS SQL Server 中的字符串操作

PHP 修剪整个单词

java - 如何在Java中将一串含有不同数量空格的数字转换为一系列Int变量。