资源描述:
《数据结构及算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、crypt(将密码或数据编码)相关函数getpass表头文件#define_XOPEN_SOURCE#include定义函数char*crypt(constchar*key,constchar*salt);函数说明crypt()将使用DataEncryptionStandard(DES)演算法将参数key所指的字符串加以编码,key字符串长度仅取前8个字符,超过此长度的字符没有意义。参数salt为两个字符组成的字符串,由a-z、A-Z、0-9,“.”和“/”所组成,用来决定使用4096种不同内建表格的哪一个。函数执行成功后会返回指向编码过的字符串指针,参数
2、key所指的字符串不会有所更动。编码过的字符串长度为13个字符,前两个字符为参数salt代表的字符串。返回值返回一个指向以NULL结尾的密码字符串。附加说明使用GCC编译时需加-lcrypt。范例#includemain(){charpasswd[13];char*key;charslat[2];key=getpass(“InputFirstPassword:”);slat[0]=key[0];slat[1]=key[1];strcpy(passwd,crypt(keyslat));key=getpass(“InputSecondPassword:”);s
3、lat[0]=passwd[0];slat[1]=passwd[1];printf(“Aftercrypt(),1stpasswd:%s”,passwd);printf(“Aftercrypt(),2ndpasswd:%s”,crypt(keyslat));}执行InputFirstPassword:/*输入test,编码后存于passwd[]*/InputSecondPassword/*输入test,密码相同编码后也会相同*/Aftercrypt()1stPasswd:teH0wLIpW0gyQAftercrypt()2ndPasswd:teH0wLIpW0gyQb
4、search(二元搜索)相关函数qsort表头文件#include定义函数void*bsearch(constvoid*key,constvoid*base,size_tnmemb,size_tsize,int(*compar)(constvoid*,constvoid*));函数说明bsearch()利用二元搜索从排序好的数组中查找数据。参数key指向欲查找的关键数据,参数base指向要被搜索的数组开头地址,参数nmemb代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar为一函数指针,这个函数用来判断两个元素之间的大小关系
5、,若传给compar的第一个参数所指的元素数据大于第二个参数所指的元素数据则必须回传大于0的值,两个元素数据相等则回传0。附加说明找到关键数据则返回找到的地址,如果在数组中找不到关键数据则返回NULL。范例#include#include#defineNMEMB5#defineSIZE10intcompar(constvoid*a,constvoid*b){return(strcmp((char*)a,(char*)b));}main(){chardata[50][size]={“linux”,”freebsd”,”solaris”,”s
6、unos”,”windows”};charkey[80],*base,*offset;inti,nmemb=NMEMB,size=SIZE;while(1){printf(“>”);fgets(key,sizeof(key),stdin);key[strlen(key)-1]=’ ’;if(!strcmp(key,”exit”))break;if(!strcmp(key,”list”)){for(i=0;i7、);offset=(char*)bsearch(key,base,nmemb,size,compar);if(offset==NULL){printf(“%snotfound!”,key);strcpy(data[nmemb++],key);printf(“Add%stodataarray”,key);}else{printf(“found:%s”,offset);}}}执行>hello/*输入hello字符串*/hellonotfound!/*找不到hello字符串*/addhelloto