读取字符串值显示为 NULL

Reading string value appears as NULL

此程序在接收到输入 1 时,会接收来自用户的信息,如果输入 2,它会显示目前已存储的内容。

问题是当您 select 2 在插入所需信息后,提供的名称显示为 NULL。

而不是

scanf("%[^\n]%*c", &OE1);
                  ^^^  

你需要写

scanf("%[^\n]%*c", OE1);

此声明

ptr -> OE[NAME_LEN]=OE1[NAME_LEN];

没有意义。

你需要写

#include <string.h>

//...

strcpy( ptr -> OE, OE1 );

这个 if 语句的这个功能

   if(head==NULL)
     ptr->next=NULL;
   else
     ptr->next=head;

一条语句即可完成

ptr->next = head;

还有这个声明

printf("%d     %s    %d\n",ptr->AM, ptr->OE[NAME_LEN], ptr->XS);

必须用这个代替

printf("%d     %s    %d\n",ptr->AM, ptr->OE, ptr->XS);