C语言写一个队列代码 队列内容一个字符串和长度
时间: 2024-05-15 15:14:43 浏览: 94
好的,这是一个有关编程的问题,让我来帮您解答。以下是一个C语言实现的队列代码,可以存储一个字符串和长度:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 //队列的最大容量
// 队列结构体
typedef struct {
char str[MAX_SIZE]; //存储字符串
int length; //字符串长度
} Queue;
// 初始化队列
void init(Queue *queue) {
queue->length = 0;
memset(queue->str, 0, MAX_SIZE); //清空队列数据
}
// 入队列
int enqueue(Queue *queue, char *str) {
if (queue->length < MAX_SIZE) {
strcpy(queue->str, str);
queue->length = strlen(str);
return 0; //入队列成功
} else {
return -1; //队列已满
}
}
// 出队列
char* dequeue(Queue *queue) {
if (queue->length > 0) {
char *str = queue->str; //保存字符串引用
init(queue); //清空队列数据
return str;
} else {
return NULL; //队列为空
}
}
int main() {
Queue queue;
init(&queue);
char input_str[MAX_SIZE] = "hello, world!";
int result = enqueue(&queue, input_str);
if (result == 0) {
printf("队列入队列成功!\n");
} else {
printf("队列已满!\n");
return 1;
}
char *output_str = dequeue(&queue);
if (output_str != NULL) {
printf("队列出队列成功!出队列的字符串为:%s\n", output_str);
} else {
printf("队列为空!\n");
return 1;
}
return 0;
}
```
这段代码实现了一个基本的队列结构,通过调用 `enqueue` 方法可以往队列中添加一个字符串,调用 `dequeue` 方法可以从队列中取出最先添加的字符串。我希望这个代码能对您有所帮助!
阅读全文