数据库中-串程序

 
本程序会慢慢的完善!
很高兴和大家交流!
#include "stdio.h"
#include "string.h"
#include "malloc.h"
#include "stdlib.h"
#include "iostream.h"
#define status int
#define ok 1
#define error 0
typedef struct
{
 char *chars;
 int len;
}Hstring;
status strassign(Hstring *S,char *chars)
{
 int len,i;
 for(i=0;chars[i]!='\0';i++);
  len=i;
 if (len)
 {
  S->chars=(char*)malloc(len*sizeof(char));
  if(S->chars==NULL) return error;
  for(i=0;i<len;i++)
  S->chars[i]=chars[i];
 }
 else
  S->chars=NULL;
 S->len=len;
 return ok;
}
status output(Hstring *S)
{
 int i;
 for(i=0;i<S->len;i++)
  printf("%c",S->chars[i]);
 return ok;
 printf("\n");
}
status strassign2(Hstring *S)
{
 char *p;
 //p=(char*)malloc(sizeof(char)); //malloc 为C语言中的库函数
 p=new char;       //new 为C++运算符,功能同malloc一样,但他们区别!用new较好
 if(p==NULL)
 {
  cout<<"内存遇界"<<endl;
  return error;
 }
 cout<<"请输入字符串char:"<<endl;
 fflush(stdin);//清除自动保存在控制台中的信息
 //getchar();  //用此来接受控制台中的信息,以保证gets(p)正常接受信息!
 gets(p); //在gets()前面必须加上getchar();因为你在选择操作后,回车会自动保存在控制台中,这样的
          //话你就gets()默认接收了回车就自动跳过了!
 //scanf("%s",p);
 strassign(S,p);
 
 return ok;
}
status strinsert(Hstring *S, int pos, Hstring T)
 { 
   int i;
   if (pos < 1 || pos > S->len+1) 
      return error; 
   if (T.len) {  
      if (!(S->chars = (char *)realloc(S->chars,(S->len+T.len+1)*sizeof(char))))
         return error;
      for (i=S->len-1; i>=pos-1; --i) 
         S->chars[i+T.len] = S->chars[i];
      for (i=0; i<T.len; i++)        
         S->chars[pos-1+i] = T.chars[i];
      S->len += T.len;
   }
   return ok;
}
 

void main()
{
 Hstring *S;
 S=(Hstring *)malloc(sizeof(Hstring));
 int i;
 output(S);
 cout<<"******************************************************\n"
  <<"*-----------*********顺序表的操作*********-----------*\n"
  <<"******************************************************\n"
  <<"1、生成一个值等于chars的串S        2、输出\n"
  <<"______________________________________________________\n"
  <<"请输入你想要的操作:"<<endl;
 scanf("%d",&i);
 while(1)
 {
  switch (i)
  { case 1: strassign2(S);break;
   case 2: output(S);break;
   default: printf("thanks for your use!");exit(1);
  }
  printf("\n请输入你想要的操作:");
  i=3;//确保输入非法值可以退出!
  scanf("%d",&i);
  
 }
 

}

你可能感兴趣的:(数据结构,串,休闲,getchar,gets)