位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 指針數(shù)組的使用

提問人:劉團圓發(fā)布時間:2020-12-02

指針數(shù)組一般可以指向多個字符串,對字符串的操作將更靈活。

【例題】姓名升序輸出

輸入若干個人的姓名,請將這些人的名字按字母順序升序輸出。

算法分析:

將這些人的姓名字符串的首地址賦給一個字符指針數(shù)組的各個元素,如圖所示。這些姓名字符串是常量字符串,常量字符串不可以使用字符串復制函數(shù)strcpyO來互相復制,因此可以考慮改變name[]數(shù)組中各個元素的指向。也就是說將name[0]指針指向最小的字符串,name[4]指針指向最大的字符串,那么在排序算法中,只需讓指針之間相互交換即可。

name[0]


?

Z

h

a

n

g

s

d

n

\0

name[1]


?

L

i

5

i

\0





name[2]


?

W

a

n

9

w

u

\0



name[3]


?

Z

h

d

0

l

i

u

\0


name[4]


?

H

a

n

q

i

\0




程序代碼如下:

#include <stdio.h>

void sort(char *name[], int count)     /* 對字符指針數(shù)組進行了排序 */

{

    char *t; 

      int i,j,min;

      for(i=0; i<count-l; i++)             /* 冒泡法排序 */

            for(j=O; j<count-l-i; j++)

                if(strcmp(name[j],name[j+1])>0)

                {

                    t=name[j];

                    name[j]=name[j+1];

                    name[j+1]=t;

                }

}

main()

{

    char *name[5]={"Zhangsan","LIsi","Wangwu","Zhaoliu","Hanqi"}

    int i=0;

    sort(name,5);            /*使用字符指針數(shù)組名作實參,調用排序函數(shù)sort()*/

    for(; i<5; i++)

        printf("%s\n",name[i]);

}

程序執(zhí)行,輸出結果為:

Hanqi

Lisi

Wangwu

Zhangsan

Zhaoliu


繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部