新鸟路过....................
 
   
我把程序改了一下,能用了,出错是因为申请空间时没有指明空间的大小,这样做错误的,
 我也是菜鸟,大家多多指教
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
struct adbook
{
char name[7];
char number[12];
};
//////////////////////////////////////////////////////////
int t=0;
class bookss
{
adbook data[10];
public:
void input(char *p,char* a);  //增加函数
void output();   // 输出
void find1(char *p,int n);  //  查找
void find2(char *p);   //查找
};
////////////////////////////////////////////////
void bookss::input (char *p,char* a)
{
   strcpy(data[t].name ,p);
   strcpy(data[t].number ,a);
   t++;
}
void bookss::output ()
{    
cout<<"   "<<data[t-1].name <<"      "<<data[t-1].number <<endl;
}
void bookss::find1 (char *p,int n)
{   
for(int i=0;i<10;i++)
{
   for(int j=0;j<strlen(data[i].name);j++)
   {
    for(int k=j;k<n;k++)
   {  
   if(p[k]==data[i].name[j])
   {
          cout<<"   "<<data[i].name <<"      "<<data[i].number <<endl;
        break;
   }
  
  }
  
   }
}
   
}
////////////////////////////////////////////////////////////
void bookss::find2 (char *p)
{  
for(int i=0;i<10;i++)
{ 
  if(strcmp(data[i].name ,p)==0)
  cout<<"   "<<data[i].name <<"      "<<data[i].number <<endl;
}
   
}
///////////////////////////////////////////////////////////////////////
int  main()
{ 
char* str=new char[10];
char* number=new char[10];
char i;
int k;
bookss  bk;
while(1)
{   system("cls");
cout<<"*---------------------------------------------------*"<<endl;
cout<<"*                                                   *"<<endl;
cout<<"*               欢迎使用通迅录                      *"<<endl;
cout<<"*                                                   *"<<endl;
cout<<"*  请选择操作                                       *"<<endl;
cout<<"*       1 新增  2 输出  3 查找  4 退出              *"<<endl;
cout<<"*---------------------------------------------------*"<<endl;
     
cin>>i;
if(i=='4')
{cout<<"谢谢使用,88"<<endl;
  exit(0);
}
switch(i)
{
case '1':
  {
  cout<<"请输入 "<<endl
   <<"   姓名,     电话号码"<<endl;
        
  cin>>str>>number;
     bk.input (str,number);
  }break;
///////////////////////////////////////
case '2':
  {  cout<<"   姓名    电话号码"<<endl;
   int temp=t; 
   t=1;
   while(temp>=t)
   { bk.output();
   t++;
   }
   t--;
   getch();
  }break;
  //////////////////////////////////
case '3':
  { 
   cout<<"     1 按姓名查找    2 按号码查找  "<<endl;
     char n;
         char *p1=new char[10]; 
     cin>>n;
     cout<<"请输入关键字"<<endl;
      
      switch(n)
      {      
       
                  case '1':  
       { cin>>p1;
        k=strlen(p1);
        cout<<"   姓名    电话号码"<<endl;
       bk.find1(p1,k);
       getch();
       }break;
                   case '2': 
      {                       
                     cin>>p1;
         cout<<"   姓名    电话号码"<<endl;
      bk.find2(p1);
      getch();
      }break;
                  default:
       {
          cout << "输入错误!!!,请重新输入" << endl;
                         getch();
       }break;
      }break;
      delete [] p1;
  }break;
default: 
        {
            cout << "输入错误!!!,请重新输入" << endl;
            getch();
  }break;
}
}
delete [] str;
delete [] number;
  return 0;
  
}
//////////////////////////////////////////////////////////////////////////////////