如题所述
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENGTH 20
#define MAX_NAME_LENGTH 10 //最大姓名长度
int searchMan(char*nameBag[],char *name,int bagScale);//在nameBag中查找name,bagScal为nameBag中包含的姓名数。找到返回数组下标,否则返回-1
int main(int argc,char * argv[]){
char *nameBag[LENGTH],*name;//LENGTH长度的数组nameBag,数组元素类型为char*
int count = 0,pos = -1;
printf("请输入%d个姓名:\n",LENGTH);
/*循环读入名字*/
while(count< LENGTH){
name = (char*)malloc(sizeof(char)*MAX_NAME_LENGTH);//动态开辟存储空间,名称多余的截断
scanf("%s",name);
name[MAX_NAME_LENGTH-1]='\0';
nameBag[count++] = name;
}
/*显示输入的名称,逆序*/
while(count--)
printf("name[%-2d] = *%s*\n",count,nameBag[count]);
printf("请输入待查找姓名:\n");
name = (char*)malloc(sizeof(char)*MAX_NAME_LENGTH);
scanf("%s",name);
name[MAX_NAME_LENGTH-1]='\0';
if((pos = searchMan(nameBag,name,LENGTH)) >=0){
printf("该姓名存在,位置是 %d",pos+1);
}else
printf("该姓名不存在");
count = 0;
while(count < LENGTH){
free(nameBag[count]);
nameBag[count++] = NULL;
}
free(name);
name = NULL;
return (0);
}
int searchMan(char*nameBag[],char *name,int bagScale){
while(bagScale--){
if(strcmp(nameBag[bagScale],name) == 0)
return (bagScale);
}
return (-1);
}
#include <stdlib.h>
#include <string.h>
#define LENGTH 20
#define MAX_NAME_LENGTH 10 //最大姓名长度
int searchMan(char*nameBag[],char *name,int bagScale);//在nameBag中查找name,bagScal为nameBag中包含的姓名数。找到返回数组下标,否则返回-1
int main(int argc,char * argv[]){
char *nameBag[LENGTH],*name;//LENGTH长度的数组nameBag,数组元素类型为char*
int count = 0,pos = -1;
printf("请输入%d个姓名:\n",LENGTH);
/*循环读入名字*/
while(count< LENGTH){
name = (char*)malloc(sizeof(char)*MAX_NAME_LENGTH);//动态开辟存储空间,名称多余的截断
scanf("%s",name);
name[MAX_NAME_LENGTH-1]='\0';
nameBag[count++] = name;
}
/*显示输入的名称,逆序*/
while(count--)
printf("name[%-2d] = *%s*\n",count,nameBag[count]);
printf("请输入待查找姓名:\n");
name = (char*)malloc(sizeof(char)*MAX_NAME_LENGTH);
scanf("%s",name);
name[MAX_NAME_LENGTH-1]='\0';
if((pos = searchMan(nameBag,name,LENGTH)) >=0){
printf("该姓名存在,位置是 %d",pos+1);
}else
printf("该姓名不存在");
count = 0;
while(count < LENGTH){
free(nameBag[count]);
nameBag[count++] = NULL;
}
free(name);
name = NULL;
return (0);
}
int searchMan(char*nameBag[],char *name,int bagScale){
while(bagScale--){
if(strcmp(nameBag[bagScale],name) == 0)
return (bagScale);
}
return (-1);
}
温馨提示:答案为网友推荐,仅供参考