这段代码是制作一本简单词典的起点。我试着把这个词和意思插入数组。怎么了?
#include <stdio.h>
#include<string.h>
main(){
char alp, *a[5][1], item[100],item2[150];
for (int i =1;i <=5 ; i++){
printf("\n\nEnter item [%d][%d]:",i,0);
scanf("%s",&item);
printf("Enter item meaning [%d][%d]:",i,0);
scanf("%s",&item2);
strcpy(a[i][0],item); //program stops here
strcpy(a[i][1],item2);
printf("word %s \nmeaning: %s",a[i][0],a[i][1]);
}
}
最佳答案
给你
#include <stdio.h>
#include <string.h>
#define N 5
int main( void )
^^^^^^^^^^^^^^^^
{
char a[N][2][150], item[150], item2[150];
^^^^^^^^^^^^
for ( int i = 0; i < N ; i++ )
^^^^^^^^^^^^^^^^^^^^^^
{
printf( "\n\nEnter item [%d][%d]: ", i, 0 );
scanf( "%s", item );
^^^^
printf( "Enter item meaning [%d][%d]: ", i, 1 );
scanf( "%s", item2 );
^^^^^
strcpy( a[i][0], item );
strcpy( a[i][1], item2 );
printf("word %s \nmeaning: %s\n", a[i][0], a[i][1] );
}
}
本声明
char *a[5][1];
声明指针的多维数组。您需要在复制字符串的位置保留内存。
数组的索引从0开始。
关于c - strcpy返回的错误没有响应窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37214177/