• 使用指针的指针对字符串排序


     1 /* Note:Your choice is C IDE */
     2 #include "stdio.h"
     3 #include "string.h"
     4 /*使用指针的指针对字符串排序*/
     5 /*排序是按照汉字的首字母进行*/
     6 /*
     7 *整体思路:1、输出排序前的数组元素
     8             
     9 *           2、输出排序后的数组元素
    10             
    11 */
    12 //自定义函数sort(),实现对字符串的排序
    13 sort(char*strings[],int n)//参数1:字符型指针数组。参数2:整型变量
    14 {
    15     char *temp;        //声明字符型指针变量
    16     int i,j;        //声明整型变量
    17     for(i=0;i<n;i++)            //之所以要两个循环,因为每个数都要和其他比较
    18     {
    19         for(j=i+1;j<n;j++)
    20         {
    21             /*
    22             *strcmp如何实现两个字符的比较??
    23             ① str1小于str2,返回负值或者-1(VC返回-1);              
    24             ② str1等于str2,返回0;
    25             ③ str1大于str2,返回正值或者1(VC返回1);
    26             */
    27             if(strcmp(strings[i],strings[j])>0)//比较两个字符
    28             {
    29                 temp=strings[i];//交换字符位置
    30                 strings[i]=strings[j];
    31                 strings[j]=temp;
    32                 }
    33             }
    34         }
    35     }
    36 
    37 void main()
    38 {
    39     int n=5;
    40     int i;
    41     //char *strings[];
    42     char **p;//指向指针的指针变量
    43     char *strings[]={"c","a","d","b","e"};//初始化字符串数组
    44     p=strings;//指针指向数组首地址
    45     printf("排序前的数组:
    ");
    46     for(i=0;i<n;i++)
    47     {
    48         printf("%s
    ",strings[i]);
    49     }
    50     sort(p,n);//调用排序自定义过程
    51     printf("
    排序后的数组:
    ");
    52     for(i=0;i<n;i++)//循环输出排序后的数组元素
    53     {
    54         printf("%s
    ",strings[i]);
    55     }
    56     getch();
    57 }
    58 
    59 /*总结:
    60 1、
    61 两个数字交换一般思路,需要另一个载体,
    62 *例如a和b数值交换,需要借助c,
    63 *把a的数值赋值给c,
    64 *再把b的数值赋值给a,
    65 *再把c的数值赋给a,
    66 *从而实现a和b数值的交换
    67 2、双重for循环用于每个数都要与其他数比较
    68 */

  • 相关阅读:
    《vue.js2.0从入门到放弃》学习之路
    动画统计图
    超简单的走马灯效果
    关于css那些常用却有点记不住的属性
    圣杯布局跟双飞翼布局
    最简单的http服务器(C#)
    sql union用法和sql union all用法,sql union效率
    存储过程函数中如何定义表变量,删除表变量内容
    C# 通过分析netstat an所得信息 查看本机所监听的端口 及判断某端口是否可用
    Microsoft .NET Framework 各版可再发行组件包
  • 原文地址:https://www.cnblogs.com/kinson/p/7684222.html
Copyright © 2020-2023  润新知