首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++程序疑问,该怎么处理

2012-04-16 
c++程序疑问各位大侠我有一程序一直未通过就是把输入字符串比较大小重新排列如:3个数据输入 er tyen输出:e

c++程序疑问
各位大侠我有一程序一直未通过 就是把输入字符串比较大小重新排列 如:3个数据 输入 er ty en 输出:er en ty 程序代码如下就是执行总是出错,帮帮忙呀,就快交作业了:
#include<iostream>
#include<string>
#define NULL 0
using namespace std;
int main()
{
int i,number; 
typedef struct LNode{
string data;
struct LNode *next;
}*LinkList,LNode;
LinkList L,P,Q,pa,pb,pc;
L=(LinkList)malloc(sizeof(LNode));//头结点
cout<<"请输入需要比较的字符序列个数:"<<endl;
cin>>number;
  L->next=NULL;
P=(LinkList)malloc(sizeof(LNode));//首元素
cout<<"请输入第一个字符序列:"<<endl;
cin>>P->data;
L->next=P;
P->next=NULL;
for(i=1;i<number;i++)
{
Q=(LinkList)malloc(sizeof(LNode));
cout<<"请输入下一个字符序列:"<<endl;
cin>>Q->data;
pa=L;pb=L->next;
while(pb!=NULL)
  {
if(!((Q->data).compare(pb->data)))
{
pa->next=Q;
Q->next=pb;
  break;
}
else 
{
pc=pb->next;
pa=pb;pb=pc;
}
}
if(pb==NULL)
{
pa->next=Q;
Q->next=NULL;
}
}
pa=L->next;
while(pa)
{
cout<<pa->data<<" ";
pa=pa->next;
}
}


[解决办法]
string 非内置数据类型,是一个类,malloc不会调用string的构造函数,导致data没分配空间,赋值就有问题
改成new
P = new LNode();

热点排行