[問題]C 字串比較與輸出

看板C_and_CPP (C/C++)作者 (乖小乖)時間9年前 (2016/09/11 15:43), 編輯推噓4(407)
留言11則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VS2013 問題(Question): 請問要如何做字串內容的比較與刪減 例如有兩字串123 245 希望可以比較過兩字串之後把兩串中重複的字刪除並合併 餵入的資料(Input): 目前寫的結構跟字串是長這樣 struct MyStruct{ char *number1; char *number2; char *number3; } typedef struct MyStruct MS void main(){ MS c[2]; c[0].number1="1"; c[0].number2="2"; c[0].number3="3"; c[1].number1="2"; c[1].number2="4"; c[1].number3="5"; } 合併的部分已經做完了 目前可以把兩字串合併 但是不知道要怎麼比較跟刪除重複 char* MSarray_total(MS *arr,int size){ const int strSize=100; char *str=new char[strSize]; str[0]='\0'; int i; for (i=0;i<size,i++){ stract_s(str,strSize,arr[i].number1); stract_s(str,strSize,arr[i].number2); stract_s(str,strSize,arr[i].number3); } return str; } 預期的正確結果(Expected Output): 目前輸出會是 123245 希望可以輸出成12345(重複的只顯示一次) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.28.1 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1473579791.A.77E.html

09/11 17:00, , 1F
首先,你那個123不叫做一個"字串",而是三個字串了!
09/11 17:00, 1F

09/11 17:00, , 2F
正確使用應該是char* s="123"
09/11 17:00, 2F

09/11 17:30, , 3F
其實你根本不需要定義struct,簡單code參考:ideone.c
09/11 17:30, 3F

09/11 17:30, , 4F
om/z6kGD5
09/11 17:30, 4F

09/11 19:42, , 5F
根據C/C++的規範,主函式要回傳值喔!請改成int main
09/11 19:42, 5F

09/11 21:34, , 6F
1. 找出兩字串聯集
09/11 21:34, 6F

09/11 21:36, , 7F
2. 創新字串, 用迴圈,不append字串1聯集中的元素
09/11 21:36, 7F

09/11 21:37, , 8F
3. 合併新字串與字串2 END
09/11 21:37, 8F

09/11 21:38, , 9F
笨方法~ 但就留給高手用更有效率的方式解了!
09/11 21:38, 9F

09/12 12:25, , 10F
開 array 紀錄 s1, s2 有出現過的,再polling array。
09/12 12:25, 10F

09/12 14:52, , 11F
hash table/map
09/12 14:52, 11F
文章代碼(AID): #1NrGiFT- (C_and_CPP)
文章代碼(AID): #1NrGiFT- (C_and_CPP)