c语言 指针法比较字符串大小(上课)


源程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define LINEMAX 20 /*定义字符串的最大长度*/

void sort(char** p) /*冒泡法对5个字符串排序函数*/
{
  int i, j;
  char *temp;
  for (i = 0; i < 5; i++)
  {
    for (j = 0; j < 5-i-1; j++)
    {
      if (strcmp(*(p + j), *(p + j+1)) > 0) /*比较后交换字符串地址*/
      {
        temp = *(p + j);
        *(p + j) = *(p + j+1);
        *(p + j+1) = temp;
      }
    }
  }
}
int main()
{
  int i;
  char *pstr[5],str[5][LINEMAX];
  char **p;
  for (i = 0; i < 5; i++)
    pstr[i] = str[i]; /*将第i个字符串的首地址赋予指针数组 pstr 的第i个元素*/
  printf("input 5 strings:\n");
  for (i = 0; i < 5; i++)
    scanf("%s", pstr[i]);
  p = pstr;
  sort(p);
  printf("strings sorted:\n");
  for (i = 0; i < 5; i++)
    printf("%s\n", pstr[i]);
  return 1;
}

 运行结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM