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

如何使用strcpy來做"交換"字串

答題得分者是:Zard
dance0198
一般會員


發表:1
回覆:1
積分:0
註冊:2005-01-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-22 18:17:31 IP:140.124.xxx.xxx 未訂閱
目前我知道strcpy是用來做字串的複製,但是我想要用它來做字串的交換,需要再怎麼做?? 例如: char nane1=John,name2=Mary; 經過....strcpy..... 結果:name1=Mary,name2=John; 感謝 by c新手
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-22 20:01:38 IP:61.64.xxx.xxx 未訂閱
引言: 目前我知道strcpy是用來做字串的複製,但是我想要用它來做字串的交換,需要再怎麼做?? 例如: char nane1=John,name2=Mary; 經過....strcpy..... 結果:name1=Mary,name2=John; 感謝 by c新手
  char Name1[50] = {"John"};
  char Name2[50] = {"Mary"};
  char buf[50] = {0, };
  strcpy(buf, Name1); // 複製 John 到 buffer
  memset(Name1, 0, sizeof(Name1)); // 清除Name1裡的John
  strcpy(Name1, Name2); // 複製 Mary 到Name1
  memset(Name2, 0, sizeof(Name2)); // 清除 Name2裡的Mary
  strcpy(Name2, buf); // 複製 buffer裡的John到Name2
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-22 22:11:42 IP:221.169.xxx.xxx 未訂閱
這樣做太危險了 若是寫入的字串長度大於目的端的字串變數,可能會導致程式當掉 或跑出奇奇怪怪的結果 不知道你有什麼樣的需求,需要用到strcpy來做字串的交換?
dance0198
一般會員


發表:1
回覆:1
積分:0
註冊:2005-01-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-22 22:26:04 IP:140.124.xxx.xxx 未訂閱
謝謝大大的解答,我了解該怎麼做了, 之前是採用 char Name1[50] = {"John"}; char Name2[50] = {"Mary"}; char buf[50] = {0, };    buf=Name1; strcpy(Name1, Name2); Name2=buf; 但是行不通,現在又更加了解strcpy的用法了, 感謝Zard 至於字串長度已設定好了,不會有發生字串長度大於目的端的字串變數的情形,也謝謝 >
系統時間:2024-05-19 20:19:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!