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

原创 2016年06月01日 17:44:28

问题及代码:

/*求最小姓氏*/

#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;
}  


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

贺老师教学链接  C语言及程序设计提高 本课讲解例:求最小姓氏#include #include char *min_name(char [][10], int); int main( ) { ...
  • sxhelijian
  • sxhelijian
  • 2015年02月11日 08:34
  • 1455

C语言及程序设计初步例程-11 算术运算符与算术表达式

贺老师教学链接  C语言及程序设计初步 本课讲解分离各位数:设 x 为一个三位整数,将其个、十、百位数分离出来(改C)#include using namespace std; int main( )...
  • sxhelijian
  • sxhelijian
  • 2015年01月28日 12:09
  • 2850

C语言及程序设计初步例程-37 循环嵌套

贺老师教学链接  C语言及程序设计初步 本课讲解求 #include int main() { int sum=0, i=1, t; while (i...
  • sxhelijian
  • sxhelijian
  • 2015年01月28日 13:51
  • 2090

C语言及程序设计进阶例程-37 二进制文件及其读写

贺老师教学链接 C语言及程序设计进阶 本课讲解对比ASCII文件和二进制文件//(1)将short int x=12321写入文本文件 #include #includeint main( ) { ...
  • sxhelijian
  • sxhelijian
  • 2015年06月29日 21:12
  • 1682

《C语言及程序设计》程序阅读——字符串数组

返回:贺老师课程教学链接(1)#include int main() { char *days[] = { "Sunday", "Monday", "Tuesday"...
  • sxhelijian
  • sxhelijian
  • 2015年05月02日 11:27
  • 1441

《C语言及程序设计》实践项目——字符串数组

返回:贺老师课程教学链接【项目1-带姓名的成绩单】设score数组中存储8名同学的C语言成绩,字符串数组name中存储同学们的姓名。这两个数组中,每名同学的姓名与成绩的下标要始终保持一致(例如name...
  • sxhelijian
  • sxhelijian
  • 2015年05月02日 11:27
  • 1409

第10章 C语言及程序设计提高例程-39 动态存储管理与动态数组的实现

1、问题及代码: /*动态存储空间管理示例*/ #include #include int main() { int *p1,*p2,max; p1 = (int *) malloc(si...
  • Emperor_21AD_ShiDi
  • Emperor_21AD_ShiDi
  • 2016年06月02日 16:12
  • 352

C语言及程序设计提高例程-28 字符串、字符数组、字符指针

贺老师教学链接  C语言及程序设计提高 本课讲解用指向字符的指针引用字符串#include int main( ) { char str[]="I am happy"; char *...
  • sxhelijian
  • sxhelijian
  • 2015年02月10日 21:37
  • 1222

C语言及程序设计提高例程-24 数组名作为函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解用数组元素作函数实参#include int gcd(int m,int n) { int r; while(r=m%n) {...
  • sxhelijian
  • sxhelijian
  • 2015年02月10日 21:27
  • 1292

C语言及程序设计提高例程-16 数组的引入

贺老师教学链接  C语言及程序设计提高 本课讲解引子:求5位同学的平均成绩#include int main( ) { int a1, a2, a3, a4, a5; int tot...
  • sxhelijian
  • sxhelijian
  • 2015年02月10日 21:16
  • 1118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第10章 C语言及程序设计提高例程-37 操作字符串数组
举报原因:
原因补充:

(最多只允许输入30个字)