我正在尝试编辑此程序。现在用户输入符号,我想让它与字符串一起使用。
#include <stdio.h>
#include <stdlib.h>
struct Node
{
char data;
struct Node *next;
};
struct queue
{
struct Node *top;
struct Node *bottom;
}*q;
void Write(char x)
{
struct Node *ptr=malloc(sizeof(struct Node));
ptr->data=x;
ptr->next=NULL;
if (q->top==NULL && q->bottom==NULL)
{
q->top=q->bottom=ptr;
}
else
{
q->top->next=ptr;
q->top=ptr;
}
}
char Read ()
{
if(q->bottom==NULL)
{
printf("Empty QUEUE!");
return 0;
}
struct Node *ptr=malloc(sizeof(struct Node));
ptr=q->bottom;
if(q->top==q->bottom)
{
q->top=NULL;
}
q->bottom=q->bottom->next;
char x=ptr->data;
free(ptr);
return x;
}
int main()
{
q= malloc(sizeof(struct queue));
q->top=q->bottom=NULL;
char ch='a';
printf("NOTE: To stop the entry, please enter 'q'!\n\n Enter a String: \n");
while(ch!='q')
{
scanf("%c",&ch);
Write(ch);
}
printf("\nThe entered String:\n\n");
while(q->bottom!=NULL)
{
ch=Read();
printf("%c",ch);
}
printf("\n\n");
system("PAUSE");
return 0;
}
所以我正在编辑它(下面的代码)并且在分配到类型&#39; char [10]&#39;时,我得到错误&#34; [错误]不兼容的类型来自类型&#39; char *&#39;&#34;
#include <stdio.h>
#include <stdlib.h>
struct Node
{
char data[10];
struct Node *next;
};
struct queue
{
struct Node *top;
struct Node *bottom;
}*q;
void Write(char x[10])
{
struct Node *ptr=malloc(sizeof(struct Node));
ptr->data=x;
ptr->next=NULL;
if (q->top==NULL && q->bottom==NULL)
{
q->top=q->bottom=ptr;
}
else
{
q->top->next=ptr;
q->top=ptr;
}
}
char Read ()
{
if(q->bottom==NULL)
{
printf("Empty QUEUE!");
return 0;
}
struct Node *ptr=malloc(sizeof(struct Node));
ptr=q->bottom;
if(q->top==q->bottom)
{
q->top=NULL;
}
q->bottom=q->bottom->next;
char x=ptr->data;
free(ptr);
return x;
}
int main()
{
q= malloc(sizeof(struct queue));
q->top=q->bottom=NULL;
char ch][10]='a';
printf("NOTE: To stop the entry, please enter 'q'!\n\n Enter a String: \n");
while(ch!='q')
{
scanf("%c",&ch);
Write(ch);
}
printf("\nThe entered String:\n\n");
while(q->bottom!=NULL)
{
ch=Read();
printf("%c",ch);
}
printf("\n\n");
system("PAUSE");
return 0;
}
我无法解决这个问题,所以我很想得到一些帮助...