将getline()创建的字符串存储在链表中,可以按照以下步骤进行:
以下是一个示例代码,演示了如何将getline()创建的字符串存储在链表中(C语言):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义链表节点结构
typedef struct Node {
char* str;
struct Node* next;
} Node;
// 创建链表节点
Node* createNode(char* str) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->str = (char*)malloc(strlen(str) + 1);
strcpy(newNode->str, str);
newNode->next = NULL;
return newNode;
}
// 将字符串存储在链表中
void storeStringInLinkedList(Node** head, char* str) {
Node* newNode = createNode(str);
if (*head == NULL) {
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
}
// 打印链表中的字符串
void printLinkedList(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%s\n", current->str);
current = current->next;
}
}
// 释放链表内存
void freeLinkedList(Node* head) {
Node* current = head;
while (current != NULL) {
Node* temp = current;
current = current->next;
free(temp->str);
free(temp);
}
}
int main() {
Node* head = NULL;
char input[100];
// 读取字符串并存储在链表中
while (fgets(input, sizeof(input), stdin) != NULL) {
input[strcspn(input, "\n")] = '\0'; // 去除换行符
storeStringInLinkedList(&head, input);
}
// 打印链表中的字符串
printLinkedList(head);
// 释放链表内存
freeLinkedList(head);
return 0;
}
这个示例代码演示了如何使用链表来存储getline()函数读取的字符串,并提供了打印链表和释放链表内存的功能。你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云