建立一个存储字符的线性表,从键盘输入线性表中的元素,如果输入@,则终止
时间: 2024-11-05 18:31:32 浏览: 21
在C语言中,你可以创建一个简单的程序来实现这个需求,例如使用`getch()`函数从键盘获取用户输入,同时处理@符号作为停止输入的标记。以下是一个基础的伪代码示例:
```c++
#include <stdio.h>
#include <conio.h> // 包含getch函数
// 定义链表节点结构
typedef struct Node {
char data;
struct Node* next;
} Node;
// 初始化链表为空
Node* createList() {
return NULL;
}
// 插入新元素到链表
void insertElement(Node** head, char c) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = c;
newNode->next = *head;
*head = newNode;
}
// 主函数
int main() {
Node* head = createList();
char input;
while ((input = getch()) != '@') { // 循环直到遇到@
if (input >= 'a' && input <= 'z' || input >= 'A' && input <= 'Z') { // 只接受字母字符
insertElement(&head, input);
} else if (input != '\r' && input != '\n') { // 忽略回车和换行符
printf("Invalid input! Please enter a letter.\n");
}
}
printf("Input terminated at '@'\n");
// 打印链表内容
printList(head);
return 0;
}
// 打印链表
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%c ", temp->data);
temp = temp->next;
}
printf("\n");
}
阅读全文