你题目的解答代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Link
{
char elem;
struct Link *next;
} link;
link *initLink();
void display(link *p);
int main()
{
char s[100];
printf("请输入字符串:");
gets(s);
link *h = initLink(s);
printf("初始化链表为:\n");
display(h);
return 0;
}
link *initLink(char *s)
{
link *p = (link *)malloc(sizeof(link)); //创建一个头结点
link *temp = p; //声明一个指针指向头结点,用于遍历链表
//生成链表
for (int i; s[i] != '\0'; i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
link *a = (link *)malloc(sizeof(link));
a->elem = s[i];
a->next = NULL;
temp->next = a;
temp = temp->next;
}
}
return p;
}
void display(link *p)
{
link *temp = p; //将temp指针重新指向头结点
//只要temp指针指向的结点的next不是Null,就执行输出语句。
while (temp->next)
{
temp = temp->next;
printf("%c ", temp->elem);
}
printf("\n");
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!