C:将字符串复制到字符串列表中

C: copy string into list of strings

所以我有一个姓名列表和对应的 phone 号码,我希望用户能够不断地在该列表中输入新的姓名-号码对。我尝试执行此操作的代码部分如下所示:

char name[20], list_names[1000][20], phone[20], list_phone[1000][20];
int n;

n = 0;
do
{
   printf("Enter name: ");
   scanf("%20[^\n]", name);

   printf("Enter phone number of %s: ", name);
   scanf("%20[^\n]", phone);

   strcpy(list_names[n], name);
   strcpy(list_phone[n], phone);

   n += 1;
}
while (n < 1000);

这通常会给我一个类似 "incompatible pointer type" 的错误。我必须以间接方式进行,并首先将名称存储在一个单独的变量中。但是如何从该变量中获取字符串到列表中呢?可能有一些我在 strcpy() 部分没有得到的东西。 感谢您的帮助!

试试这个

        printf("Enter name: ");
        scanf(" %19[^\n]", name);//add one space and turn 20 to 19 (leave space for '[=10=]')

        printf("Enter phone number of %s: ", name);
        scanf(" %19[^\n]", phone);