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