我试图将相同的字符从一维字符数组复制到二维数组的每一行,但我无法输出任何内容。
预期输出:
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/