C语言用链、表实现对同一个变量覆盖循环写入已确定的字符串并且每写入一次执行一次打印的例子
时间: 2023-05-31 15:07:55 浏览: 97
好的,我明白了。以下是一个使用链表实现对同一变量进行覆盖循环写入已确定的字符串并且每写入一次执行打印的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node {
char* data;
struct node* next;
} Node;
int main() {
Node* head = NULL;
Node* current = NULL;
char* str[] = {"apple", "orange", "banana", "pear"};
int len = sizeof(str)/sizeof(str[0]);
int i = 0;
while(1) {
if(i == len)
i = 0;
char* s = malloc(strlen(str[i])+1);
strcpy(s, str[i]);
Node* new_node = malloc(sizeof(Node));
new_node->data = s;
new_node->next = NULL;
if(head == NULL) {
head = new_node;
current = head;
} else {
current->next = new_node;
current = new_node;
}
printf("%s\n", s);
i++;
char c = getchar();
if(c == 'q')
break;
}
// free memory
current = head;
while(current != NULL) {
head = current;
current = current->next;
free(head->data);
free(head);
}
return 0;
}
```
这个程序使用链表存储了一个字符串数组,并且在一个无限循环中反复写入这些字符串到同一变量中,并且每次写入后都会打印出该字符串。你可以随时按下 'q' 键来停止循环。
阅读全文