编写一个读入一个字符串,把它顺序存入一个顺序表,并按逆序打印的程序。c
时间: 2023-06-18 18:02:18 浏览: 108
以下是一个基于 C 语言的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct {
char data[MAX_SIZE];
int length;
} SeqList;
void initList(SeqList *list) {
list->length = 0;
}
void insert(SeqList *list, char element) {
if (list->length == MAX_SIZE) {
printf("List is full.\n");
return;
}
list->data[list->length] = element;
list->length++;
}
void reversePrint(SeqList *list) {
for (int i = list->length - 1; i >= 0; i--) {
printf("%c", list->data[i]);
}
}
int main() {
SeqList list;
initList(&list);
char input[MAX_SIZE];
printf("Enter a string: ");
scanf("%s", input);
for (int i = 0; i < strlen(input); i++) {
insert(&list, input[i]);
}
printf("Reversed string: ");
reversePrint(&list);
return 0;
}
```
首先,我们定义了一个顺序表的结构体 `SeqList`,其中包含了一个字符数组 `data` 和一个整数 `length`,用于存储顺序表中的元素和当前元素个数。然后,我们定义了一些操作顺序表的函数,如 `initList` 用于初始化顺序表,`insert` 用于在顺序表末尾插入元素,`reversePrint` 用于按逆序打印顺序表中的元素。
在 `main` 函数中,我们首先初始化顺序表 `list`,然后读入一个字符串 `input`,并将其顺序存入顺序表中。最后,我们调用 `reversePrint` 函数将顺序表中的元素按逆序打印出来。
注意,这个实现并没有对输入字符串的长度进行限制,因此可能会存在越界的风险。在实际使用中,应该根据具体情况对输入字符串的长度进行检查。
阅读全文