哈哈!人的野心總是不能滿足!之前上資料結構,老師叫我們做三個字串串接,是用迴圈做的。我剛好有讀到關於指標陣列的東西,所以改用指標陣列來做。 過程十分順利,之後我又有更大的企圖心,如果要串接的字串數量是可以變化要怎做?就像printf那樣,所以我就去查資料啦!是利用到Stdarg.h中的,提供使用不定參數的函式,看完資料後就迅速完成,但這之中,我又耍笨了!一直以為我做錯,還跑去知識加發問。後面才發現是誤會一場,哈!完成的原始碼如下:

#include<stdio.h>

#include<stdlib.h>

#include<stdarg.h>

 

void cat(int amont,char [],...);

int main(void)

{

    char strA[256];

    char strB[256];

    char strC[256];

    char strD[256];

    scanf("%s %s %s",strA,strB,strC);

    cat(3,strD,strA,strB,strC);

    printf("%s\n",strD);

    system("PAUSE");

    return 0;

}

void cat(int amount,char dest[],...)

{

     char *ptr[amount];

     va_list argptr;

     va_start(argptr,amount);

     int i,counter=0;

     for (i=0;i<amount;i++)

     {

         ptr[i]=va_arg(argptr,char *);

         while (*ptr[i]!='\0')

               dest[counter++]=*(ptr[i]++);

     }

     dest[counter]='\0';

     va_end(argptr);                            

}
文章標籤
全站熱搜
創作者介紹
創作者 jeff810123 的頭像
jeff810123

在我心中有一個夢

jeff810123 發表在 痞客邦 留言(0) 人氣(114)