第10章 C语言及程序设计提高例程-37 操作字符串数组

来源:互联网 发布:软件项目助理职责 编辑:程序博客网 时间:2024/03/29 00:59

问题及代码:

/*求最小姓氏*/#include <stdio.h>  #include <string.h>char *min_name(char [][10],int);int main(){  char name[5][10]={"Zhao", "Qian", "Sun", "Li", "Zhou"};  printf("%s\n",min_name(name,5));  return 0;}char *min_name(char nam[][10],int n){   int i;   char *p;   p = nam[0];   for(i=0;i<n;i++)     if(strcmp(p,nam[i])>0)   //比较s1、s2大小,s1大为正        p = nam[i];   return p;}

2、

问题及代码:

/*姓氏排序*/#include <stdio.h>  #include <string.h>void sort(char *name[],int n);void print(char *name[],int n);int main(){  char name[5][10]={"Zhao", "Qian", "Sun", "Li", "Zhou"};  sort(name,5);  //这里出错?为什么?  print(name,5);  return 0;}void print(char *name[],int n){   int i;   for(i=0;i<n;i++)      printf("%s\n",name[i]);}void sort(char *name[],int n){  char *temp;  int i,j,k;  for(i=0;i<n-1;i++)   {     k=i;     for(j=i+1;j<n;j++)          if(strcmp(name[k],name[j])>0)           k=j;     temp=name[i];     name[i]=name[k];     name[k]=temp;   }}

3、

/*用二级指针处理*/#include<stdio.h>int main(){  char **p;  //类型写成int,造成编译不了  char *name[]={"Zhao", "Qian", "Sun", "Li", "Zhou"};    for(p=name+1;p<name+5;p+=2)  //二级指针是什么意思?,name+1是行的地址    printf("%s\n",*p);  return 0;}  


0 0
原创粉丝点击