从键盘读入一个字符串,把它存入一个链表(每个结点存储1个字符),并按相反的次序将字符串输出到显示屏。
时间: 2024-04-08 14:35:38 浏览: 27
首先,需要定义一个链表结构体,每个结点存储一个字符和指向下一个结点的指针。
然后,从键盘读入一个字符串,逐个字符创建链表结点,并将其插入链表的头部。
最后,遍历链表,按相反的次序输出每个结点存储的字符到显示屏。
具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 链表结构体
typedef struct node {
char data; // 存储的字符
struct node* next; // 指向下一个结点的指针
} Node;
int main() {
char str[100]; // 存储输入的字符串
Node* head = NULL; // 链表头指针
// 从键盘读入一个字符串
printf("请输入一个字符串:");
scanf("%s", str);
// 逐个字符创建链表结点,并将其插入链表头部
int len = strlen(str);
for (int i = 0; i < len; i++) {
Node* node = (Node*)malloc(sizeof(Node));
node->data = str[i];
node->next = head;
head = node;
}
// 遍历链表,按相反的次序输出每个结点存储的字符到显示屏
printf("相反的次序输出字符串:");
Node* p = head;
while (p != NULL) {
printf("%c", p->data);
p = p->next;
}
printf("\n");
// 释放链表结点的内存
p = head;
while (p != NULL) {
Node* q = p;
p = p->next;
free(q);
}
return 0;
}
```