Untitled
unknown
plain_text
a year ago
5.2 kB
3
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> struct person{ char name[100]; char lastname[100]; char phonenumber[100]; }; struct book{ struct person arry[101]; struct person arry2[101]; int personNo; }; struct book member; int search(char name[],char lastname[]){ int i; for(i=0;i<member.personNo;i++){ if(strcmp(member.arry[i].name,name)==0 && strcmp(member.arry[i].lastname,lastname)==0 ){ return i; } } return -1; } int insert(char name[],char lastname[],char phonenum[]){ int i,position; position=search(name,lastname); if(position==-1){ strcpy(member.arry[member.personNo].name,name); strcpy(member.arry[member.personNo].lastname,lastname); strcpy(member.arry[member.personNo].phonenumber,phonenum); member.personNo++; }else{ strcpy(member.arry[position].phonenumber,phonenum); } return 1; } int edit(char name[],char lastname[],char newname[],char newlastname[],char newphonenum[]){ int i,position; position=search(newname,newlastname); if(position==-1){ position=search(name,lastname); strcpy(member.arry[position].name,newname); strcpy(member.arry[position].lastname,newlastname); strcpy(member.arry[position].phonenumber,newphonenum); }else{ strcpy(member.arry[position].phonenumber,newphonenum); delet(name,lastname); } return 1; } void delet(char name[],char lastname[]){ int i,position; position=search(name,lastname); if(position!=-1){ for(i=position;i< member.personNo-1;i++){ strcpy(member.arry[i].name,member.arry[i+1].name); strcpy(member.arry[i].lastname,member.arry[i+1].lastname); strcpy(member.arry[i].phonenumber,member.arry[i+1].phonenumber); } member.personNo--; } return 1; } int searchw(char query[]){ int i,lennam,t=1,sw=1,lenlanam,j,sw2=1,k,lenqu; lenqu=strlen(query); for(i=0;i<member.personNo;i++){ lennam=strlen(member.arry[i].name); for(j=0;j< lennam;j++){ sw2=1; if(member.arry[i].name[j]==query[0]){ sw2=0,sw=1,t=1; for(k=j+1;k<=lenqu;k++){ if(member.arry[i].name[k]!=query[t]){ sw=0;} t++;} if(sw==1){ break;} } } if(sw!=1 || sw2!=0){ lenlanam=strlen(member.arry[i].lastname); for(j=0;j<lenlanam;j++){ sw2=1; if(member.arry[i].lastname[j]==query[0]){ sw2=0,sw=1, t=1; for(k=j+1;k<lenqu;k++){ if(member.arry[i].lastname[k]!=query[t]){ sw=0;} t++;} if(sw==1){ break;} } } } if(sw==1 && sw2==0){ printf("%s %s %s\n",member.arry[i].name,member.arry[i].lastname,member.arry[i].phonenumber);} t=1; } } int list(){ int t=0,i,j,cap; for(cap=65;cap<=90;cap++){ for(i=0;i<member.personNo;i++){ if((int)member.arry[i].name[0]==cap){ strcpy(member.arry2[t].lastname,member.arry[i].lastname); strcpy(member.arry2[t].name,member.arry[i].name); strcpy(member.arry2[t].phonenumber,member.arry[i].phonenumber); t++; } } for(j=0;j<member.personNo;j++){ if((int)member.arry[j].name[0]==cap+32){ strcpy(member.arry2[t].lastname,member.arry[j].lastname); strcpy(member.arry2[t].name,member.arry[j].name); strcpy(member.arry2[t].phonenumber,member.arry[j].phonenumber); t++; } } } for(i=0;i<t;i++){ printf("%s %s %s\n",member.arry2[i].name,member.arry2[i].lastname,member.arry2[i].phonenumber); } return 1; } int main(){ int n,i; char opp[100]; char name[100]; char lastname[100]; char phonenum[100]; char newname[100]; char newlastname[100]; char newphonenum[100]; char query[100]; member.personNo=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s",opp); if(strcmp(opp,"add")==0){ scanf("%s",name); scanf("%s",lastname); scanf("%s",phonenum); insert(name,lastname,phonenum); } if(strcmp(opp,"delete")==0){ scanf("%s",name); scanf("%s",lastname); delet(name,lastname); } if(strcmp(opp,"edit")==0){ scanf("%s",name); scanf("%s",lastname); scanf("%s",newname); scanf("%s",newlastname); scanf("%s",newphonenum); edit(name,lastname,newname,newlastname,newphonenum); } if(strcmp(opp,"list")==0){ list(); } if(strcmp(opp,"search")==0){ scanf("%s",query); searchw(query); } } }
Editor is loading...
Leave a Comment