C语言,怎么将输入的字符串储存到静态链表中
时间: 2024-10-09 10:07:11 浏览: 14
在C语言中,要将输入的字符串存储到静态链表中,首先需要定义一个结构体表示链表节点,包含一个指向下一个节点的指针和一个字符数组用于存储字符串。然后创建一个静态链表,并实现相关的操作函数如插入节点、显示链表等。以下是简单的步骤:
1. 定义链表节点结构体(这里假设每个节点可以保存最多256个字符):
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char data[256];
struct Node *next;
} Node;
static Node listHead = {NULL}; // 静态链表头节点
```
2. 创建插入节点的函数:
```c
void insertString(char* str) {
Node* newNode = (Node*)malloc(sizeof(Node));
strncpy(newNode->data, str, strlen(str)); // 将字符串复制到新节点的数据部分
newNode->next = listHead.next; // 更新新的头节点
listHead.next = newNode; // 设置新的头节点
}
```
3. 如果有读取或遍历链表的需求,可以添加相应的函数:
```c
void displayList() {
Node* temp = listHead.next;
while (temp != NULL) {
printf("%s -> ", temp->data);
temp = temp->next;
}
printf("NULL\n");
}
```
4. 使用时,先读取用户输入的字符串,然后调用`insertString`函数将其插入链表:
```c
char input[256];
printf("请输入字符串: ");
fgets(input, sizeof(input), stdin); // 注意 fgets 不会自动换行,需手动处理
input[strcspn(input, "\n")] = '\0'; // 移除末尾的换行符
insertString(input); // 插入字符串
displayList(); // 显示链表内容
```