想要输出英文字母 但是为什么结果输出了一串奇怪的中文

void Split(LinkNode*& L,ElemType x)//将单链表按照基准划分
{
LinkNode* l;
l = (LinkNode*)malloc(sizeof(LinkNode));

LinkNode* c;
c = (LinkNode*)malloc(sizeof(LinkNode));
l->next = c;
c->data = x;
c->next = NULL;

     LinkNode* s = L->next;
     LinkNode* j;
     LinkNode* m=l;
     LinkNode* k = c;
     if(s == NULL)
     printf("空链表");
     else
     {
     while(s != NULL)
     {
             if(s->data < x)
             {
                  j = (LinkNode*)malloc(sizeof(LinkNode));
                  m->next = j;
                  j->next = c;
                  m = m->next; 
                  s = s->next;     
             }
             else if(s->data > x)
             {
                  j = (LinkNode*)malloc(sizeof(LinkNode));
                  j->next = k->next;
                  k->next = j;
                  s = s->next;
             }
             else
                 s = s->next;
     }
     }
     LinkNode* v = l;
     while(v != NULL )
     {
             printf("%c",v->data);
             v = v->next;
     }
}
int main()

{
LinkNode* h;
ElemType e;
ElemType x = 'd';
int n = 8;
ElemType a[] = "acbfedgh";
printf("依次插入acbfedgh元素\n");
CreateListR(h,a,n);
DispList(h);
Split(h,x);
DestroyList(h);
system("pause");
return 1;
} 图片说明

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^