全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:664
推到 Plurk!
推到 Facebook!

請高手指點ㄧ下!!

尚未結案
fj9071
一般會員


發表:8
回覆:4
積分:2
註冊:2005-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-08 22:02:13 IP:61.221.xxx.xxx 未訂閱
我要寫ㄧ個程式,它可以把(字串一)加(字串二),後面涵是那邊要怎麼寫阿? 請幫小弟指點一下!!感激不盡! void add(char *s1,char *s2); int main(void) { char str1[]="Hello!"; char str2[]="Welcome!"; add(str1,str2); printf("改變後內容為:%s",str1); return 0; } void add(char *s1,char *s2) { 這裡要怎麼寫阿?? } 想要印出(Hello!Welcome!)
typenew
一般會員


發表:8
回覆:17
積分:5
註冊:2004-03-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-08 22:29:31 IP:163.28.xxx.xxx 未訂閱
可以使用strcat()..不需要自己寫一個函式
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-08 23:28:13 IP:221.169.xxx.xxx 未訂閱
1.你這樣寫會產生嚴重的記憶體錯誤。 因為 str1 的記憶體空間只有 7 個BYTES。 而你要把它加起來。會造成記憶體空間不夠。 所以你要把它加起來。你要把 STR1 宣告夠大的空間。 2.有足夠的空間。你再來可以利用 strcat, sprintf, wsprintf 這類的函數去做到你要的相加功能。(當然,你要自己去看函數手冊了。這些手冊寫得很清楚。我不想浪費時間寫飯粒)。 3.你如果在宣告空間上覺得麻煩。 你用的是C++,你可以利用它的方便。 把STR1, STR2 都換成 String 來用 這樣你就可以直接用 str1 = str2; 來做到你想要相加的功能。 就這樣。
fj9071
一般會員


發表:8
回覆:4
積分:2
註冊:2005-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-09 02:22:03 IP:61.221.xxx.xxx 未訂閱
那如果不用內建函式庫的話,要如何解阿?? 不好意思!在幫我ㄧ次!!^^
typenew
一般會員


發表:8
回覆:17
積分:5
註冊:2004-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-09 02:50:26 IP:211.76.xxx.xxx 未訂閱
引言: 那如果不用內建函式庫的話,要如何解阿?? 不好意思!在幫我ㄧ次!!^^ < face="Verdana, Arial, Helvetica"> 如果都不要用內建的函式的話,小弟的想法是,用兩個迴圈,將str1跟str2各算出各多少char,然後在宣告一個兩個字串加起的長度一樣長的char陣列,在一個一個放進去,最後後面在多加一個字串結尾'\o',小弟拙見。
rogan321
高階會員


發表:21
回覆:307
積分:200
註冊:2003-05-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-09 03:47:07 IP:203.204.xxx.xxx 未訂閱
完全不用內建函數~
 
char *add(char *s1, char *s2)
 {
        int len=0;
        while(s1[len]!='\0')
                len  ;
        for(int i=0;s2[i]!='\0';i  ,len  )
        {
                s1[len] = s2[i];
        }
        s1[len] = '\0';
        return s1;
}
了呼? 發表人 - rogan321 於 2005/01/09 03:55:13
系統時間:2024-07-01 17:11:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!