作者IMLeroy (乖小乖)
看板C_and_CPP
標題[問題]C 字串比較與輸出
時間Sun Sep 11 15:43:08 2016
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1473579791.A.77E.html
1F:推 Davidhu127: 首先,你那個123不叫做一個"字串",而是三個字串了! 09/11 17:00
2F:→ Davidhu127: 正確使用應該是char* s="123" 09/11 17:00
3F:→ Davidhu127: 其實你根本不需要定義struct,簡單code參考:ideone.c 09/11 17:30
4F:→ Davidhu127: om/z6kGD5 09/11 17:30
5F:→ jacky1989: 根據C/C++的規範,主函式要回傳值喔!請改成int main 09/11 19:42
6F:推 xsssxxzz: 1. 找出兩字串聯集 09/11 21:34
7F:→ xsssxxzz: 2. 創新字串, 用迴圈,不append字串1聯集中的元素 09/11 21:36
8F:→ xsssxxzz: 3. 合併新字串與字串2 END 09/11 21:37
9F:→ xsssxxzz: 笨方法~ 但就留給高手用更有效率的方式解了! 09/11 21:38
10F:推 EdisonX: 開 array 紀錄 s1, s2 有出現過的,再polling array。 09/12 12:25
11F:推 flyfoxy: hash table/map 09/12 14:52