用gets输入任意多个的长度小于80的字符串,结束后重新显示所有输入过的字符串,如何使用链表方式处理.?
答案:1 悬赏:20 手机版
解决时间 2021-04-07 21:31
- 提问者网友:鼻尖触碰
- 2021-04-07 11:29
用gets输入任意多个的长度小于80的字符串,结束后重新显示所有输入过的字符串,如何使用链表方式处理.?
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-04-07 11:52
#include
#include
#include
typedef struct //定义结构体
{
char ch[80]; //存放数据字符串
struct node* next; //指向下一个结点
}node;
node* Create() //新建结点并初始化
{
node* n=(node*)malloc(sizeof(node)*1); //为新结点分配内存空间
memset(n->ch,'',80);
n->next=NULL;
return n;
}
int main()
{
node *head=NULL,*p=NULL; //定义头结点和当前指向结点指针
char s[80]="";
while(1)
{
memset(s,'',80);
gets(s);
if(strcmp(s,"quit")==0) break; //如果输入的是quit则表示用户结束输入
node *new_node;
new_node=Create(); //新建结点
strcpy(new_node->ch,s); //把用户输入的字符串存储入新结点中
if(head==NULL) //如果头结点为空,则把当前新结点当成头结点
{
head=new_node;
p=head; //当前指向为头结点
}
else //如果头结点不为空
{
p->next=new_node; //把上一个结点的next指向新建结点
p=p->next; //当前指向为新结点
}
}
printf("
");
p=head; //重新指向头结点,以便输出
while(1)
{
printf("%s
",p->ch); //输出数据字符串
if(p->next==NULL) break; //如果当前结点没有指向下一个结点,则退出
p=p->next; //当前指向下一个结点
}
return 0;
}
#include
#include
typedef struct //定义结构体
{
char ch[80]; //存放数据字符串
struct node* next; //指向下一个结点
}node;
node* Create() //新建结点并初始化
{
node* n=(node*)malloc(sizeof(node)*1); //为新结点分配内存空间
memset(n->ch,'',80);
n->next=NULL;
return n;
}
int main()
{
node *head=NULL,*p=NULL; //定义头结点和当前指向结点指针
char s[80]="";
while(1)
{
memset(s,'',80);
gets(s);
if(strcmp(s,"quit")==0) break; //如果输入的是quit则表示用户结束输入
node *new_node;
new_node=Create(); //新建结点
strcpy(new_node->ch,s); //把用户输入的字符串存储入新结点中
if(head==NULL) //如果头结点为空,则把当前新结点当成头结点
{
head=new_node;
p=head; //当前指向为头结点
}
else //如果头结点不为空
{
p->next=new_node; //把上一个结点的next指向新建结点
p=p->next; //当前指向为新结点
}
}
printf("
");
p=head; //重新指向头结点,以便输出
while(1)
{
printf("%s
",p->ch); //输出数据字符串
if(p->next==NULL) break; //如果当前结点没有指向下一个结点,则退出
p=p->next; //当前指向下一个结点
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯